man pages section 1M: System Administration Commands

Exit Print View

Updated: July 2014
 
 

mpstat(1M)

Name

mpstat - report per-processor or per-processor-set statistics

Synopsis

/usr/bin/mpstat [-amq] [-A core|soc|bins] [-k keys] [-o num]
     [-p | -P set] [-T d | u] [-I statfile] [-O statfile]
     [interval [count]]

Description

The mpstat command reports processor statistics in tabular form. Each row of the table represents the activity of one processor. The first table summarizes all activity since boot. Each subsequent table summarizes activity for the preceding interval. All values are rates listed as events per second unless otherwise noted.

During execution of the kernel status command, the state of the kernel can change. If relevant, a state change message is included in the mpstat output, in one of the following forms:

<<processor 3 moved from pset: -1 to: 1>>
<<pset destroyed: 1>>
<<pset created: 1>>
<<processors added: 1, 3>>
<<processors removed: 1, 3>>

The mpstat command reports the following information:

CPU|SET|COR|SOC|BIN
CPU

Processor ID for which statistics are shown, when the –a and –A options are omitted.

SET

Processor set ID for which statistics are aggregated, for the –a option.

COR

Core ID for which statistics are aggregated, for the –A core option.

SOC

Socket ID for which statistics are aggregated, for the –A soc option.

BIN

Bin ordinal for which statistics are aggregated, for the –A bins option.

minf

minor faults

mjf

major faults

xcal

inter-processor cross-calls

intr

interrupts

ithr

interrupts as threads (not counting clock interrupt)

csw

context switches

icsw

involuntary context switches

migr

thread migrations (to another processor)

smtx

spins on mutexes (lock not acquired on first try)

srw

spins on readers/writer locks (lock not acquired on first try)

syscl

system calls

usr

percent user time

sys

percent system time

wt

the I/O wait time is no longer calculated as a percentage of CPU time, and this statistic will always return zero.

idl

percent idle time

sze

number of processors in the requested processor set

set

processor set membership of each CPU

Options

The following options are supported:

–a

Aggregate output by processor set. Sort the output by set. The default output is sorted by CPU number.

–A core

Aggregate CPU output by core ID. Data rows having the same core ID are aggregated into one row. The columns are replaced with subtotals, by default. The –m option prints column averages, instead.

The –A option is incompatible with the –a option for aggregating by processor set.

–A soc

Aggregate CPU output by socket ID. Data rows having the same socket ID are aggregated into one row. The columns are replaced with subtotals, by default. The –m option prints column averages, instead.

The –A option is incompatible with the –a option for aggregating by processor set.

–A bins

Aggregate the rows into bins within each sampling period, grouping them in the order in which they appear, and aggregate over rows for each bin. The –k option may be used to change the row order prior to the binning step. The sze column prints the number of CPUs in each bin. The BIN column replaces the CPU column and prints the ordinal of each bin.

Aggregation by ID (–A core|soc) is processed before sorting (–k). Grouping by bins (–A bins) is done next. Finally, the number of output lines printed per interval may be limited by –o .

The –A option is incompatible with the –a option for aggregating by processor set.

–I statfile

Replay data previously saved in statfile. Create data files for replay by specifying –O. This option is especially useful for analyzing statistics on machines with large numbers of CPUs. The file may be reprocessed multiple times using different sorting and aggregation options.

The –I option is incompatible with an interval and count specification.

Read from the standard input if the file name is (hyphen).

–k key1,...

Sort rows within each sampling period from highest to lowest by key1, then key2, and so on. Each key may be any of the column headers such as xcal, intr, sys, and so forth.

–m

Print the arithmetic mean value rather than the sum when the –a or –A options are used to aggregate data over multiple CPUs.

–o num

Print only the first num rows within each sampling period, after applying sorting and aggregation options.

–O statfile

Save all data to statfile. This data may be replayed at a later time using –I.

Write to the standard output if the file name is (hyphen).

The purpose of –O is to capture all available data. It is incompatible with the data reduction options: –a, –A, –k, –m, –o, –p, and –P.

–p

Report processor set membership of each CPU. Sort the output by set. The default output is sorted by CPU number.

–P set

Display only those processors in the specified set.

–q

Suppress messages related to state changes.

–T u | d

Specify u for a printed representation of the internal representation of time. See time(2). Specify d for standard date format. See date(1).

interval

Report once each interval seconds.

count

Only print count reports.

Examples

On displays of 80–character width, example output below wraps by one to seven characters. By making a window wider, you can eliminate this wrap.

Example 1 Using mpstat to Generate User and System Operation Statistics

The following command generates processor statistics over a five–second interval in two reports. The command shows the processor set membership of each CPU. The default output is sorted by CPU number, aggregated by processor set, for user (usr) and system (sys) operations.

example% mpstat -ap 5 2


SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze
  0    6   0  355  291  190  22    0    0    0   0    43   0   2  0  43   1
  1   24  17  534  207  200  70    1    0    2   0   600   4   1  0  84   2
  2   19   7  353  325  318  44    0    0    5   0   345   1   1  0  94   3
  3   36   2  149  237  236  14    0    0    4   0    97   0   0  0  98   2
SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze
  0    1   0  720  405  304  55    0    0   18   0    12   0  15  0  81   1
  1    0  69 1955  230  200 313   33    4   41   9  7086  34  10  0  19   2
  2    0  46  685  314  300 203   11    0   54   1  5287  36   6  0  28   3
  3    0   0   14  386  384   0    0    0    0   0     0   0   0  0 100   2
Example 2 Displaying CPUs That Meet Filter Requirement

The following command displays the three CPUs with the highest intr rates.

example% mpstat -k intr -o 3
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
 56 1143   5  975  4238   82  465   74   53  124    0 198163  42  17   0  41
123 1189   6 1315  1030  890  461   65   53  122    0 24383   27  12   0  62
  4 1184   5 1040   149   70  502   73   55  113    0 82039   31  13   0  56
Example 3 Aggregating Multiple CPUs into Quartiles

The following command aggregates 256 CPUs into quartiles by sys time.

example% mpstat -A 4 -k sys
BIN minf mjf xcal intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl sze
  
0   18   0 5811  7105    1 22154   17 9529 1176   0    72    1  79   0  19  64
1    0   0 4624  1006   12 1321   42  418  175    0  3591   36  37   0  27  64
2 1195   5 1056    92   10  526   74   56  104    0 45876   27  12   0  61  64
3    0   0    2    18    8   10    0    0    0    0     1    0   0   0 100  64
Example 4 Saving Statistics for Later Reprocessing

The following command saves statistics for later reprocessing and aggregates by core ID on a machine with eight CPUs per core.

example% mpstat -O /tmp/t1; mpstat -I /tmp/t1 -A core
COR minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl sze
514    0   0  124    45    0   21    0    3    1    0     0    0   3   0  97   8
521    0   0   16     5    0    1    0    0    0    0     0    0   0   0 100   8
528    0   0   11     5    0    3    0    0    0    0     0    0   0   0 100   8
535    0   0    7     4    0    1    0    0    0    0     0    0   0   0 100   8
542    0   0    7     4    0    1    0    0    0    0     0    0   0   0 100   8
549    0   0   10     4    0    1    0    0    0    0     0    0   0   0 100   8
556    0   0   10     5    0    1    0    0    0    0     0    0   0   0 100   8
563    0   0    8     4    0    1    0    0    0    0     0    0   0   0 100   8

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/core-os
Interface Stability
See below.

Invocation is evolving. Human readable output is unstable.

See also

sar(1), date(1), iostat(1M), sar(1M), vmstat(1M), time(2), attributes(5)

Notes

The sum of CPU utilization might vary slightly from 100 due to rounding errors in the production of a percentage figure.

The total time used for CPU processing is the sum of usr and sys output values, reported for user and system operations. The idl value reports the time that the CPU is idle for any reason other than pending disk I/O operations.

Run the iostat command with the –x option to report I/O service times in svc_t output. The iostat utility also reports the same wt, user (us), and system (sy) statistics. See iostat(1M) for more information.

When executing in a zone and if the pools facility is active, mpstat(1M) will only provide information for those processors which are a member of the processor set of the pool to which the zone is bound.