Microprocessor usage statistics

Each row describes the microprocessor usage associated with a process.

Unless the verbose (-v) option is specified, only the 20 most active processes are included in the list. At the bottom of the report, microprocessor usage for all processes is totaled, and microprocessor idle time is reported. The idle time percentage number is calculated from the idle time divided by the measured interval. The difference between the microprocessor time totals and measured interval is due to Interrupt handlers.

The Network CPU % is the percentage of total time that this process spent executing network-related code.

If the -t flag is used, a thread microprocessor usage statistic is also present. Each process row described above is immediately followed by rows describing the microprocessor usage of each thread owned by that process. The fields in these rows are identical to those for the process, except for the name field. Threads are not named.

In the example report, the Idle time percentage number (81.104 percent) shown in the global microprocessor usage report is calculated from the Idle time (55.4400) divided by the measured interval times 8 (8.54 seconds times 8), because there are eight microprocessors in this server. If you want to look at each microprocessor's activity, you can use sar, ps, or any other SMP-specific command. Similar calculation applies to the total CPU % that is occupied by all processes. The Idle time is due to network I/O. The difference between the CPU Time totals (55.4400 + 1.4267) and the measured interval is due to interrupt handlers and the multiple microprocessors. It appears that in the example report, the majority of the microprocessor usage was network-related: (0.844 / 2.087) = 40.44 percent.
Note: If the result of total network CPU % divided by total CPU % is greater than 0.5 from Process CPU Usage Statistics for NFS server, then the majority of microprocessor usage is network-related.

This method is also a good way to view microprocessor usage by process without tying the output to a specific program.