5.6 KiB
Linux mpstat Command – Reports Processors Related Statistics
Generally today computer is using multiple processors. Or maybe 1 physical processor with 4 cores inside. On server side, more processors or cores means more power. But the other side, application also more power consumption. You may find a situation when your cpu utilization is high but you feel that you don’t running anything. On Linux system, you can monitor this activity using mpstat.
What is mpstat
mpstat is used to monitor cpu utilization on your system. It will be more usefull if your system has multiple processors. The first processors will signed as CPU 0. The second one will be signed CPU 1 and so on. From its manual page, mpstat is described as :
The mpstat command writes to standard output activities for each available processor, processor 0 being the first one. Global average activities among all processors are also reported. The mpstat command can be used both on SMP and UP machines, but in the latter, only global average activities will be printed. If no activity has been selected, then the default report is the CPU utilization report
How to run mpstat
Just type mpstat on your console to run mpstat.
$ mpstat
Linux 3.2.0-57-generic (USERNB01) 12/12/2013 _x86_64_ (2 CPU)
03:29:29 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
03:29:29 PM all 6.30 0.06 1.94 3.75 0.00 0.06 0.00 0.00 87.88
If you found an error such as : command not found or similar you may not install mpstat in your system.
If you are using CentOS, RedHat or Fedora, run this command to install mpstat
# yum install sysstat
If you are using Debian, Ubuntu or its derivative, run this command to install mpstat
# apt-get install sysstat
And here’s how to read the information above.
- 03:29:29 PM : means the time that mpstat was run
- all : means All CPUs
- %usr : show the percentage of CPU utilization that occurred while executing at the user level (application)
- %nice : show the percentage of CPU utilization that occurred while executing at the user level with nice priority
- %sys : show the percentage of CPU utilization that occurred while executing at the system level (kernel)
- %iowait : show the percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request
- %irq : show the percentage of time spent by the CPU or CPUs to service hardware interrupts
- %soft : show the percentage of time spent by the CPU or CPUs to service software interrupts
- %steal : show the percentage of time spent in involuntary wait by the virtual CPU or CPUs while the hypervisor was servicing another virtual processor
- %guest : show the percentage of time spent by the CPU or CPUs to run a virtual processor
- %idle : show the percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O equest
Print CPU utilization per processors
As you can see above, our system has 2 CPUs. If you want, you can use -P parameter followed by CPU number to see specific CPU utilization.
$ mpstat -P 0
Linux 3.2.0-57-generic (USERNB01) 12/12/2013 _x86_64_ (2 CPU)
03:54:00 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
03:54:00 PM 0 3.82 0.01 1.16 3.88 0.00 0.06 0.00 0.00 91.06
$ mpstat -P 1
Linux 3.2.0-57-generic (USERNB01) 12/12/2013 _x86_64_ (2 CPU)
03:53:58 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
03:53:58 PM 1 16.52 0.20 4.48 0.46 0.00 0.04 0.00 0.00 78.30
Print all CPU Utilization
You can also print every CPU utilization of processors in a single page. Just use -P ALL parameter to do it
$ mpstat -P ALL
Linux 3.2.0-57-generic (USERNB01) 12/12/2013 _x86_64_ (2 CPU)
04:07:36 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
04:07:36 PM all 6.02 0.04 1.72 2.99 0.00 0.05 0.00 0.00 89.17
04:07:36 PM 0 3.84 0.01 1.15 3.72 0.00 0.06 0.00 0.00 91.21
04:07:36 PM 1 13.55 0.15 3.66 0.46 0.00 0.03 0.00 0.00 82.15
Print CPU utilization using intervals
You may want to see the CPU utilization movement. To do this, you can use intervals. Here’s an example.
$ mpstat 3 4
Linux 3.2.0-57-generic (USERNB01) 12/12/2013 _x86_64_ (2 CPU)
04:27:11 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
04:27:14 PM all 0.67 0.00 0.34 0.00 0.00 0.00 0.00 0.00 98.99
04:27:17 PM all 1.17 0.00 0.33 1.33 0.00 0.00 0.00 0.00 97.17
04:27:20 PM all 0.84 0.00 0.17 0.00 0.00 0.00 0.00 0.00 98.99
04:27:23 PM all 1.00 0.00 0.17 1.51 0.00 0.00 0.00 0.00 97.32
Average: all 0.92 0.00 0.25 0.71 0.00 0.00 0.00 0.00 98.12
The above command is to show you 4 reports about CPU utilization with 3 seconds intervals
Print mpstat version
Finally, to print mstat version, use -V parameter
$ mpstat -V
sysstat version 10.0.3
(C) Sebastien Godard (sysstat orange.
That’s a quick usage of mpstat command in Linux system. You may see msptat manual page by typing man mpstat to explore more detail.
via: http://linoxide.com/linux-command/linux-mpstat-command/