Unix command to find CPU Utilization

in Categories , last updated January 13, 2007

Q. I am using Solaris UNIX. How do I find out CPU Utilization under Sun Solaris UNIX?

A. Under Sun Solaris UNIX (and other UNIX oses like HP-UX and *BSD oses) you can use following commands to gather CPU information:

=> sar : System activity reporter

=> mpstat : Report per-processor or per-processor-set statistics

=> ps / top commands

Note: Linux specific CPU utilization information is here. Following information applies to UNIX only.

UNIX sar command examples

General syntax is as follows:
sar t [n]
In the first instance, sar samples cumulative activity counters in the operating system at n intervals of t seconds, where t should be 5 or greater. If t is specified with more than one option, all headers are printed together and the output may be difficult to read.

Task: Display today’s CPU activity, use

# sar

Task:Watching system activity evolve i.e. reports CPU Utilization

# sar -u 12 5


  • -u 12 5: Comparison of CPU utilization; 12 seconds apart; 5 times.

Output includes:

  1. %usr: User time (% of CPU)
  2. %sys: System time (% of CPU)
  3. %wio: Percent of CPU running idle with a process waiting for block I/O
  4. %idle: Percent of CPU that is idle

Task: You can watch CPU activity evolve for 10 minutes and save data

# sar -o file-name 60 10

Task: You can just sar and logout and let the report store in files

# nohup sar -A -o output-file 60 10 1>/dev/null 2>&1 &
Note to display data stored in output-file pass -f option to sar command:
# sar -f output-file

UNIX mpstat example

Type the following command to display per-processor statistics; 12 seconds apart; 5 times
# mpstat 12 5

You can also use traditional ps and top command:
# top
# ps -e -o pcpu -o pid -o user -o args

Read man pages of ps, top, mpstat and sar for more information.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Share this on (or read 14 comments/add one below):

14 comment

  1. I have Unix system with 32 CPU and 32 GB memory. My application is installed on Websphere. Looks like only 1 processor is allocated to my application out of 32 cpu. Is it possible to allocate multiple processors for my application. The system always shows 90% CPU idle time and more than 20 G free memory. How can I utilise this memory and cpu time to get better performance.

    1. Lokesh,

      Unless your application is already parallelized, there is no way to force it to use more than one CPU. Do you know if your application is Serial or in Parallel?

  2. what is the commandin UNIX SOLARIS to list out 5 TOP processors which is consuming more CUP

  3. i have 42 cpus and 256 gb ram… i want to run my job autometically when my cpus usage is below cetain limit

  4. i have 12 cpus and 256 gb ram… i want to run my job when my cpus usage is below cetain limit

  5. top|grep “Cpu(s):”|awk ‘{ print $2 }’| head -1

    Above command will get the cCPU usgae.

    Have a question? Post it on our forum!