# phpman > man > MPSTAT(1)

> **TLDR:** Report CPU statistics.
>
- Display CPU statistics every 2 seconds:
  `mpstat {{2}}`
- Display 5 reports, one by one, at 2 second intervals:
  `mpstat {{2}} {{5}}`
- Display 5 reports, one by one, from a given processor, at 2 second intervals:
  `mpstat -P {{0}} {{2}} {{5}}`

*Source: tldr-pages*

---

[MPSTAT(1)](https://www.chedong.com/phpMan.php/man/MPSTAT/1/markdown)                                Linux User's Manual                               [MPSTAT(1)](https://www.chedong.com/phpMan.php/man/MPSTAT/1/markdown)



## NAME
       mpstat - Report processors related statistics.


## SYNOPSIS
       **mpstat**  **[** **-A** **]** **[** **--dec={** **0** **|** **1** **|** **2** **}** **]** **[** **-n** **]** **[** **-u** **]** **[** **-T** **]** **[** **-V** **]** **[** **-I** **{** _keyword_**[,...]** **|** **ALL**
       **}** **]** **[** **-N** **{** _node_list_ **|** **ALL** **}** **]** **[** **-o** **JSON** **]** **[** **-P** **{** _cpu_list_ **|** **ALL** **}** **]** **[** _interval_ **[** _count_ **]** **]**


## DESCRIPTION
       The **mpstat** command writes to standard output activities for each available processor, proces‐
       sor 0 being the first one.  Global average activities among all processors are also reported.
       The **mpstat** command can be used on both 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.

       The _interval_ parameter specifies the amount of time in seconds between each report.  A  value
       of  0  (or  no parameters at all) indicates that processors statistics are to be reported for
       the time since system startup (boot). The _count_ parameter can  be  specified  in  conjunction
       with the _interval_ parameter if this one is not set to zero. The value of _count_ determines the
       number of reports generated at _interval_ seconds apart. If the _interval_ parameter is specified
       without the _count_ parameter, the **mpstat** command generates reports continuously.


## OPTIONS
### -A -n -u -I
              fying **-N** **ALL** **-P** **ALL** unless these options are explicitly set on the command line.

### --dec={ 0 | 1 | 2 }
              Specify the number of decimal places to use (0 to 2, default value is 2).

### -I
              Report interrupts statistics.  Possible _keywords_ are **CPU**, **SCPU**, and **SUM**.

              With the **CPU** keyword, the number of each individual interrupt received per  second  by
              the CPU or CPUs is displayed. Interrupts are those listed in _/proc/interrupts_ file.

              With  the  **SCPU** keyword, the number of each individual software interrupt received per
              second by the CPU or CPUs is displayed. This option works only with kernels 2.6.31 and
              later. Software interrupts are those listed in _/proc/softirqs_ file.

              With  the  **SUM**  keyword, the **mpstat** command reports the total number of interrupts per
              processor.  The following values are displayed:


              CPU    Processor number. The keyword **all** indicates that statistics are  calculated  as
                     averages among all processors.


              intr/s Show the total number of interrupts received per second by the CPU or CPUs.

              The  **ALL**  keyword is equivalent to specifying all the keywords above and therefore all
              the interrupts statistics are displayed.

### -N
              Indicate the NUMA nodes for which statistics are to be reported.  _node_list_ is a  list
              of  comma-separated  values or range of values (e.g., **0,2,4-7,12-**). Note that node **all**
              is the global average among all nodes. The **ALL** keyword indicates that  statistics  are
              to be reported for all nodes.

### -n
              displayed:

              NODE   Logical NUMA node number. The keyword **all** indicates that statistics are  calcu‐
                     lated as averages among all nodes.

              All the other fields are the same as those displayed with option **-u** (see below).

### -o JSON
              Display the statistics in JSON (Javascript Object Notation) format.  JSON output field
              order is undefined, and new fields may be added in the future.

### -P
              Indicate the processors for which statistics are to be reported.  _cpu_list_ is  a  list
              of comma-separated values or range of values (e.g., **0,2,4-7,12-**).  Note that processor
              0 is the first processor, and processor **all** is the global average  among  all  proces‐
              sors.   The  **ALL**  keyword indicates that statistics are to be reported for all proces‐
              sors.  Offline processors are not displayed.

### -T -u
              ments are displayed:

              CORE   Logical core number.

              SOCK   Logical socket number.

              NODE   Logical NUMA node number.

### -u

              CPU    Processor  number.  The keyword _all_ indicates that statistics are calculated as
                     averages among all processors.

              %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).  Note  that this does not include time spent servicing
                     hardware and software interrupts.

              %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 inter‐
                     rupts.

              %soft  Show the percentage of time spent by the CPU or CPUs to service software inter‐
                     rupts.

              %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  proces‐
                     sor.

              %gnice Show the percentage of time spent by the CPU or CPUs to run a niced guest.

              %idle  Show  the  percentage of time that the CPU or CPUs were idle and the system did
                     not have an outstanding disk I/O request.

### -V


## ENVIRONMENT
       The **mpstat** command takes into account the following environment variable:

       **S**___**COLORS**
              By default statistics are displayed in color when the output is connected to a  termi‐
              nal.   Use this variable to change the settings. Possible values for this variable are
              _never_, _always_ or _auto_ (the latter is equivalent to the default settings).
              Please note that the color (being red, yellow, or some other color) used to display  a
              value  is not indicative of any kind of issue simply because of the color. It only in‐
              dicates different ranges of values.

       **S**___**COLORS**___**SGR**
              Specify the colors and other attributes used to display statistics  on  the  terminal.
              Its   value   is   a   colon-separated   list   of   capabilities   that  defaults  to
              **H=31;1:I=32;22:M=35;1:N=34;1:Z=34;22**.  Supported capabilities are:

              **H=**     SGR (Select Graphic Rendition) substring for percentage values greater than  or
                     equal to 75%.

              **I=**     SGR substring for CPU number.

              **M=**     SGR substring for percentage values in the range from 50% to 75%.

              **N=**     SGR substring for non-zero statistics values.

              **Z=**     SGR substring for zero values.

       **S**___**TIME**___**FORMAT**
              If  this  variable exists and its value is **ISO** then the current locale will be ignored
              when printing the date in the report header.  The **mpstat** command will use the ISO 8601
              format  (YYYY-MM-DD) instead.  The timestamp will also be compliant with ISO 8601 for‐
              mat.


## EXAMPLES
### mpstat 2 5
              Display five reports of global statistics among all processors at  two  second  inter‐
              vals.

### mpstat -P ALL 2 5
              Display five reports of statistics for all processors at two second intervals.


## BUGS
       _/proc_ filesystem must be mounted for the **mpstat** command to work.


## FILES
       _/proc_ contains various files with system statistics.


## AUTHOR
       Sebastien Godard (sysstat <at> orange.fr)


## SEE ALSO
       [**sar**(1)](https://www.chedong.com/phpMan.php/man/sar/1/markdown), [**pidstat**(1)](https://www.chedong.com/phpMan.php/man/pidstat/1/markdown), [**iostat**(1)](https://www.chedong.com/phpMan.php/man/iostat/1/markdown), [**vmstat**(8)](https://www.chedong.com/phpMan.php/man/vmstat/8/markdown)

       _<https://github.com/sysstat/sysstat_>
       _<http://pagesperso-orange.fr/sebastien.godard/_>



Linux                                        AUGUST 2020                                   [MPSTAT(1)](https://www.chedong.com/phpMan.php/man/MPSTAT/1/markdown)
