Thanks to all who replied. Summary: The user counters show time spent in user mode; the system counters show time spent in system mode. Ayaz ######################## I am not real clear on the difference myself, but basically I believe the user counters increase when CPU is executing code in user space, and the system counters increase when CPU is executing system calls. I am not sure if all system calls increase system counters or only when the CPU is running in kernel mode. But basically when your C code opens a file, it will make system calls, part of which runs kernel modules, and will cause an increase in system utilization (and the rest of the code increases user util). Tom Payerle ######################## The user counters show time spent in user mode; the system counters show time spent in system mode. Most C functions actually call system functions to do some of the work. E.g., printf()/scanf() call the write()/read() system functions. Solaris is actually in system mode for the system functions. Hence the system counters increment to show the time in the system functions, even in a non-root user program. Michael Schulte ######################## This is one of the core concepts of UNIX. When operating on user data, a process (or thread) has limited access to other processes, memory, devices, etc. CPU used by such a thread is counted as "user time". If it needs to interact with the system, it makes a kernel or system call (like read()). When the call starts, it has to have extra privileges, so it operates in kernel or system context. Time accumulated by the thread is counted as system time. http://www.uwsg.iu.edu/UAU/process/manage.html A process that did nothing but make system call in a tight loop might accumulate significant system time, but it would be an unusual process that did that. A process that interacted with the system rarely (perhaps doing extensive mathematical calculations), might accumulate less than 1% system time. Darren Dunham ######################## System can be thought of as "things done by the OS directly", for example, time spent in device drivers, running the network stack, paging, running the kernel. User is "time spent running user applications (including those of the root user)". Thomas Carter ######################## System can be thought of as "things done by the OS directly", for example, time spent in device drivers, running the network stack, paging, running the kernel. User is "time spent running user applications (including those of the root user)". Thomas Carter ######################## Go to the link below. Great explanation for vmstat. http://www.adminschoice.com/docs/iostat_vmstat_netstat.htm#Virtual%20Memory% 20Statistics%20(%20vmstat%20) ######################## no matter what you run for an application, the sys counters will increase, as the application will need system resources to run. sys represents the activity by all the daemons that the system runs to keep it working i.e. memory management, IO etc.. where as the usr counters are the processes stictly by the user application. regards, Don ######################## User = time spent in the context of your process. System = time spent in the system context on the behalf of your process. Example: If you have the classic numerical application that reads in a few numbers, performs large amounts of math on those numbers, and then prints a single number as the result, you'll see large user times, and very little system time (system time is need to do the read/write as well as some process startup). If you have an application that creates (or removes) several thousand files, it will have minimal user time, but very large system time, since most of the time spent is in the kernel processing the creat() or unlink() calls. Of course, most processes fall somewhere in between those extremes. Hope this is of some help, Ric Anderson (ric@opus1.com) ######################## user: time spend in user processes (not in the kernel) system: time spend in the kernel Casper ######################## Standard unix/posix behavior. See just about any textbook. man rusage can be educational (man sar, etc.). For advanced and indepth coverage, see the new pair of tomes on Performance/System internals by Mauro and McDougal. ru_utime the total amount of time spent executing in user mode. ru_stime the total amount of time spent in the system executing on behalf of the process(es). Let's consider an illustrative (but not entirely correct) example. Say you have an application which performs something like: 1) read data into a buffer 2) do a lot of computations on the buffer 3) write the results During the read activity, a lot of time is spent "in the kernel" doing "system things" on your behalf. That is accounted as "system" time. The time spent doing computational things in the buffer is nearly all user time (unless you have a lot of floating point exceptions or pointer errors ;>), followed by the write, which again invokes a variety of system services for causing I/O to actually occur. Keith Bierman _______________________________________________ sunmanagers mailing list sunmanagers@sunmanagers.org http://www.sunmanagers.org/mailman/listinfo/sunmanagersReceived on Mon Oct 9 01:13:21 2006
This archive was generated by hypermail 2.1.8 : Thu Mar 03 2016 - 06:44:01 EST