1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
|
.TH MPSTAT 1 "JULY 2018" Linux "Linux User's Manual" -*- nroff -*-
.SH NAME
mpstat \- Report processors related statistics.
.SH SYNOPSIS
.B mpstat [ -A ] [ --dec={ 0 | 1 | 2 } ] [ -n ] [ -u ] [ -V ] [ -I {
.I keyword
.B [,...] | ALL } ] [ -N {
.I node_list
.B | ALL } ] [ -o JSON ] [ -P {
.I cpu_list
.B | ALL } ] [
.I interval
.B [
.I count
.B ] ]
.SH DESCRIPTION
The
.B 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
.B 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.
The
.I 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
.I count
parameter can be specified in conjunction with the
.I interval
parameter if this one is not set to zero. The value of
.I count
determines the number of reports generated at
.I interval
seconds apart. If the
.I interval
parameter is specified without the
.I count
parameter, the
.B mpstat
command generates reports continuously.
.SH OPTIONS
.IP -A
This option is equivalent to specifying
.BR "-n -u -I ALL -N ALL -P ALL"
.IP "--dec={ 0 | 1 | 2 }"
Specify the number of decimal places to use (0 to 2, default value is 2).
.IP "-I { keyword [,...] | ALL }"
Report interrupts statistics.
Possible keywords are
.BR CPU ,
.BR SCPU ,
and
.BR SUM .
With the
.B 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
.B 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
.B SUM
keyword, the
.B mpstat
command reports the total number of interrupts per processor.
The following values are displayed:
.B CPU
.RS
.RS
Processor number. The keyword
.I all
indicates that statistics are calculated as averages among all
processors.
.RE
.B intr/s
.RS
Show the total number of interrupts received per second by
the CPU or CPUs.
.RE
The
.B ALL
keyword is equivalent to specifying all the keywords above and
therefore all the interrupts statistics are displayed.
.RE
.RE
.IP "-N { node_list | ALL }"
Indicate the NUMA nodes for which statistics are to be reported.
.I node_list
is a list of comma-separated values or range of values (e.g.,
.BR 0,2,4-7,12- ).
Note that node
.B all
is the global average among all nodes. The
.B ALL
keyword indicates that statistics are to be reported for all nodes.
.IP -n
Report summary CPU statistics based on NUMA node placement. The following
values are displayed:
.B NODE
.RS
.RS
Node number. The keyword
.I all
indicates that statistics are calculated as averages among all nodes.
.RE
All the other fields are the same as those displayed with option -u
(see below).
.RE
.IP "-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.
.IP "-P { cpu_list | ALL }"
Indicate the processors for which statistics are to be reported.
.I cpu_list
is a list of comma-separated values or range of values (e.g.,
.BR 0,2,4-7,12- ).
Note that processor 0 is the first processor, and processor
.B all
is the global average among all processors.
The
.B ALL
keyword indicates that statistics are to be reported for all processors.
Offline processors are not displayed.
.IP -u
Report CPU utilization. The following values are displayed:
.B CPU
.RS
.RS
Processor number. The keyword
.I all
indicates that statistics are calculated as averages among all
processors.
.RE
.B %usr
.RS
Show the percentage of CPU utilization that occurred while
executing at the user level (application).
.RE
.B %nice
.RS
Show the percentage of CPU utilization that occurred while
executing at the user level with nice priority.
.RE
.B %sys
.RS
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.
.RE
.B %iowait
.RS
Show the percentage of time that the CPU or CPUs were idle during which
the system had an outstanding disk I/O request.
.RE
.B %irq
.RS
Show the percentage of time spent by the CPU or CPUs to service hardware
interrupts.
.RE
.B %soft
.RS
Show the percentage of time spent by the CPU or CPUs to service software
interrupts.
.RE
.B %steal
.RS
Show the percentage of time spent in involuntary wait by the virtual CPU
or CPUs while the hypervisor was servicing another virtual processor.
.RE
.B %guest
.RS
Show the percentage of time spent by the CPU or CPUs to run a virtual
processor.
.RE
.B %gnice
.RS
Show the percentage of time spent by the CPU or CPUs to run a niced
guest.
.RE
.B %idle
.RS
Show the percentage of time that the CPU or CPUs were idle and the system
did not have an outstanding disk I/O request.
.RE
.RE
.IP -V
Print version number then exit.
.SH ENVIRONMENT
The
.B mpstat
command takes into account the following environment variable:
.IP S_COLORS
When this variable is set, display statistics in color on the terminal.
Possible values for this variable are
.IR never ,
.IR always
or
.IR auto
(the latter is the default).
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.
.IP 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
.BR H=31;1:I=32;22:M=35;1:N=34;1:Z=34;22 .
Supported capabilities are:
.RS
.TP
.B H=
SGR (Select Graphic Rendition) substring for percentage values greater than or equal to 75%.
.TP
.B I=
SGR substring for CPU number.
.TP
.B M=
SGR substring for percentage values in the range from 50% to 75%.
.TP
.B N=
SGR substring for non-zero statistics values.
.TP
.B Z=
SGR substring for zero values.
.RE
.IP S_TIME_FORMAT
If this variable exists and its value is
.BR ISO
then the current locale will be ignored when printing the date in the report header.
The
.B mpstat
command will use the ISO 8601 format (YYYY-MM-DD) instead.
The timestamp will also be compliant with ISO 8601 format.
.SH EXAMPLES
.B mpstat 2 5
.RS
Display five reports of global statistics among all processors at two second intervals.
.RE
.B mpstat -P ALL 2 5
.RS
Display five reports of statistics for all processors at two second intervals.
.SH BUGS
.I /proc
filesystem must be mounted for the
.B mpstat
command to work.
.SH FILES
.IR /proc
contains various files with system statistics.
.SH AUTHOR
Sebastien Godard (sysstat <at> orange.fr)
.SH SEE ALSO
.BR sar (1),
.BR pidstat (1),
.BR iostat (1),
.BR vmstat (8)
.I https://github.com/sysstat/sysstat
.I http://pagesperso-orange.fr/sebastien.godard/
|