How to find the current CPU usage in Ubuntu – not the average

Posted by on March 6, 2012 in Bash, Operating Systems, Programming, Ubuntu | 0 comments

There are several ways to find the current CPU usage in Ubuntu. If you’re looking for real time statistics, simply use the “top” command. You can change the update rate using the -d argument to change it to a number of seconds between updates.

The issue arises however if you’re trying to have a program get the current CPU usage. If you run top with the -n 1 argument to make it stop updating and just return the results, you’ll be left with a number you might not expect. The first top return is the average CPU usage since the machine was turned on. So if you want the average, that’s a great way to find it. There are a lot of other ways to find the average. If you want the current however, you have to set the -n argument to 2 so that you get the second update which will be the current CPU usage. I also set the -b argument which the man page indicates is good for sending the output to other programs.

I often combine this with a grep command to get only the rows dealing with the CPU. My end command is listed below.

top -b -n 2 -d .5 | grep “Cpu(s):”

Man page for the different top arguments

-b : Batch mode operation
Starts top in ‘Batch mode’, which could be useful for sending output from top to other programs or to a file. In this mode, top will not accept input and runs until the iterations limit you’ve set with the ‘-n’ command-line option or until killed.

-c : Command line/Program name toggle
Starts top with the last remembered ‘c’ state reversed. Thus, if top was displaying command lines, now that field will show program names, and visa versa. See the ‘c’ interactive command for additional information.

-d : Delay time interval as: -d ss.tt (seconds.tenths)
Specifies the delay between screen updates, and overrides the corresponding value in one’s personal configuration file or the startup default. Later this can be changed with the ‘d’ or ‘s’ interactive commands.

Fractional seconds are honored, but a negative number is not allowed. In all cases, however, such changes are prohibited if top is running in ‘Secure mode’, except for root (unless the ‘s’ command-line option was used). For additional information on ‘Secure mode’ see topic 5a. SYSTEM Configuration File.

-h : Help
Show library version and the usage prompt, then quit.

-H : Threads toggle
Starts top with the last remembered ‘H’ state reversed. When this toggle is On, all individual threads will be displayed. Otherwise, top displays a summation of all threads in a process.

-i : Idle Processes toggle
Starts top with the last remembered ‘i’ state reversed. When this toggle is Off, tasks that are idled or zombied will not be displayed.
-n : Number of iterations limit as: -n number
Specifies the maximum number of iterations, or frames, top should produce before ending.

-u : Monitor by user as: -u somebody
Monitor only processes with an effective UID or user name matching that given.

-U : Monitor by user as: -U somebody
Monitor only processes with a UID or user name matching that given. This matches real, effective, saved, and filesystem UIDs.

-p : Monitor PIDs as: -pN1 -pN2 … or -pN1, N2 [,…]
Monitor only processes with specified process IDs. This option can be given up to 20 times, or you can provide a comma delimited list with up to 20 pids. Co-mingling both approaches is permitted.

This is a command-line option only. And should you wish to return to normal operation, it is not necessary to quit and and restart top — just issue the ‘=’ interactive command.

-s : Secure mode operation
Starts top with secure mode forced, even for root. This mode is far better controlled through the system configuration file (see topic 5. FILES).

-S : Cumulative time mode toggle
Starts top with the last remembered ‘S’ state reversed. When ‘Cumulative mode’ is On, each process is listed with the cpu time that it and its dead children have used. See the ‘S’ interactive command for additional information regarding this mode.

-v : Version
Show library version and the usage prompt, then quit.

If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>