# mpstat

## NAME



           mpstat - Report processors related statistics.
    


## SYNOPSIS



           **mpstat [ -A ] [ --dec={ 0 | 1 | 2 } ] [ -H ] [ -n ] [ -U ] [ -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, processor 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** This option is equivalent to specifying **-n -u -I ALL**.  This
                  option also implies specifying **-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).
    
           **-H** Also detect and display statistics for physically
                  hotplugged vCPUs.
    
           **-I {**_keyword_**[,...] | ALL }**
                  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 {**_node_list_ **| ALL }**
                  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** Report summary CPU statistics based on NUMA node placement.
                  The following values are displayed:
    
                  NODE   Logical NUMA node number. The keyword **all** indicates
                         that statistics are calculated 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 {**_cpu_list_ **| ALL }**
                  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 processors.  The **ALL** keyword indicates
                  that statistics are to be reported for all processors.
                  Offline processors are not displayed.
    
           **-T** Display topology elements in the CPU report (see option **-u**
                  below). The following elements are displayed:
    
                  CORE   Logical core number.
    
                  SOCK   Logical socket number.
    
                  NODE   Logical NUMA node number.
    
           **-U** Display timestamp (UTC - Coordinated Universal Time) in
                  seconds from the epoch.
    
           **-u** Report CPU utilization. The following values are displayed:
    
                  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 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.
    
                  %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** Print version number then exit.
    


## 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 terminal.  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
                  indicates 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
                  **I=32;22:N=34;1:W=35;1:X=31;1:Z=34;22**.  Supported
                  capabilities are:
    
                  **I=** SGR (Select Graphic Rendition) substring for CPU
                         number.
    
                  **N=** SGR substring for non-zero statistics values.
    
                  **W=**(or **M=**)
                         SGR substring for percentage values in the range
                         from 75% to 90% (or in the range 10% to 25%
                         depending on the metric's meaning).
    
                  **X=**(or **H=**)
                         SGR substring for percentage values greater than or
                         equal to 90% (or lower than or equal to 10%
                         depending on the metric's meaning).
    
                  **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 format.
    


## EXAMPLES



           **mpstat 2 5**
                  Display five reports of global statistics among all
                  processors at two second intervals.
    
           **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.
    


* * *