Ubuntu 22.04 sysstat 安装与命令参数详解

在 Ubuntu 22.04 上从零安装 sysstat 12.5.2(在线与离线两种方式),并逐条实测 sar/iostat/mpstat/pidstat/sadf/sadc 全部命令参数与真实输出,附采集配置与参数速查表

Linux 系统监控与诊断sysstatUbuntu 22.042026/10/06

Ubuntu 22.04 sysstat 安装与命令参数详解

目标:本手册解决在 Ubuntu 22.04 上从零安装与配置 sysstat 性能采集套件、并掌握 sar / iostat / mpstat / pidstat / sadf / sadc 全部命令参数用法的问题。以下全部命令与输出均已在 Ubuntu 22.04(x86_64)真实环境中逐条实测通过。

一、环境信息

  • 操作系统:Ubuntu 22.04(x86_64)
  • 内核版本:6.8.0-138-generic
  • 主机名:mon-ubuntu2204
  • CPU 核数:6 CPU
  • sysstat 版本:12.5.2(Debian 包 sysstat 12.5.2-2ubuntu0.2)
  • 安装来源:官方软件源 archive.ubuntu.com(jammy / jammy-updates)
  • 历史数据目录:/var/log/sysstat/(当日文件 sa06)
  • 采集程序路径:/usr/lib/sysstat/sadc
  • 历史数据时区:UTC(sadf -H 实测显示 Timezone: UTC)

二、工具概览

sysstat(System Activity Reporter,作者 Sebastien Godard)是一套 Linux 性能监控工具集,核心由若干子命令组成:

  • sar:系统活动报告(System Activity Reporter),既能实时采样,也能读取历史采集的二进制数据文件(saDD)回放;覆盖 CPU、内存、磁盘 I/O、网络、队列、分页、中断、电源等维度。
  • iostat:CPU 与块设备 I/O 统计,支持分区(-p)、单位切换、扩展字段(-x)等。
  • mpstat:逐 CPU / 全局 CPU 状态,以及中断(-I SUM)、软中断(-I SCPU)明细。
  • pidstat:逐进程统计,可按 PID、命令名过滤,或看线程(-t)、子进程(-T CHILD)等。
  • sadf:数据文件格式转换器,把 saDD 二进制文件转成 CSV/XML/JSON 等可编程格式。
  • sadc:低层数据采集器,是 cron / systemd 定时采集和 sar -o 的底层执行者。
  • 另有 sa1 / sa2 / debian-sa1 等采集封装脚本,以及针对 CIFS 文件系统的 cifsiostat。

工作机制:后台定时任务(Ubuntu 下为 /etc/cron.d/sysstat 调用 debian-sa1,同时提供 systemd 定时器)周期性调用 sadc 把系统活动采样写入 /var/log/sysstat/saDD(DD 为当月日期),sadf 负责把这些二进制的「历史数据」导出为可读/可导入格式。

三、在线安装

本环境为便于对照,已随监控工具集一并安装过 sysstat,此处重复执行 apt-get install 验证幂等安装效果。

# 安装 sysstat(本环境已装,重复执行验证)
apt-get install -y sysstat
sysstat is already the newest version (12.5.2-2ubuntu0.2).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

安装后验证包版本与工具版本:

dpkg -l sysstat
ii  sysstat        12.5.2-2ubuntu0.2            amd64        system performance tools for Linux
sar -V
sysstat version 12.5.2
(C) Sebastien Godard (sysstat <at> orange.fr)

💡 说明:Ubuntu 下 dpkg -l 状态列 ii 表示该包已正确安装并配置完成。

四、离线安装

离线场景(内网 / 无法访问 apt 源的主机)可先在一台能联网的同版本机器上下载 .deb 包及依赖,再拷贝到目标机 dpkg -i 安装。

第 1 步:在联网机查看 sysstat 的递归依赖清单。

apt-cache depends --recurse --no-recommends --no-suggests sysstat
cdebconf
coreutils
debconf
dpkg
gcc-12-base
libacl1
libattr1
libbz2-1.0
libc6
libcrypt1
libdebian-installer4
libgcc-s1
libgmp10
liblzma5
libnewt0.52
libpcre2-8-0
libselinux1
libsensors-config
libsensors5
libslang2
libtextwrap1
libzstd1
lsb-base
perl-base
sensible-utils
sysstat
tar
ucf

第 2 步:下载 sysstat 的 deb 包到离线目录。

mkdir -p /root/offline-bundle
cd /root/offline-bundle
apt-get install -y --download-only sysstat
Get:8 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 sysstat amd64 12.5.2-2ubuntu0.2 [487 kB]
Fetched 1848 kB in 2s (861 kB/s)
Download complete and in download only mode
W: Download is performed unsandboxed as root as file '/root/offline-bundle/partial/atop_2.7.1-1_amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

⚠️ 注意:上例末尾的 W: 是 --download-only 以 root 运行时 sandbox 权限告警,仅提示、不影响最终 .deb 下载结果。

第 3 步:确认离线包清单。

ls -lh /root/offline-bundle/
9
1.8M	/root/offline-bundle
atop_2.7.1-1_amd64.deb
glances_3.2.4.2+dfsg-1_all.deb
htop_3.0.5-7build2_amd64.deb
iotop_0.6-24-g733f3f8-1.1ubuntu0.1_amd64.deb
ltrace_0.7.3-6.1ubuntu6.22.04.1_amd64.deb
nmon_16n+debian-1_amd64.deb
strace_5.16-0ubuntu3_amd64.deb
sysstat_12.5.2-2ubuntu0.2_amd64.deb

第 4 步:目标机离线安装。(日志中以 htop 单包 dpkg -i 重装为例展示完整回显,sysstat 安装方式一致。)

dpkg -i sysstat_12.5.2-2ubuntu0.2_amd64.deb
Preparing to unpack htop_3.0.5-7build2_amd64.deb ...
Unpacking htop (3.0.5-7build2) over (3.0.5-7build2) ...
Setting up htop (3.0.5-7build2) ...
Processing triggers for mailcap (3.70+nmu1ubuntu1.22.04.1) ...

第 5 步:离线安装后版本验证。

sar -V
sysstat version 12.5.2

五、全部命令参数实测

5.1 sar(系统活动报告)

5.1.1 sar -V 版本

查看 sar 版本。

sar -V
sysstat version 12.5.2

5.1.2 sar 1 3 实时采样(默认 CPU)

不带选项时默认报告 CPU 使用率,1 3 表示每 1 秒采样、共 3 次。

sar 1 3
Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)

04:53:38        CPU     %user     %nice   %system   %iowait    %steal     %idle
04:53:39        all     17.83      0.00     11.71      0.00      0.00     70.46
04:53:40        all     17.53      0.00     20.53      0.33      0.00     61.60
04:53:41        all     11.84      0.00     12.01      0.00      0.00     76.14
Average:        all     15.74      0.00     14.78      0.11      0.00     69.36

💡 说明:第一行为启动信息(内核、主机名、日期、架构、CPU 核数),最后一行为 Average: 平均列。

5.1.3 sar -u 1 2 CPU 使用率

-u 显式指定 CPU 使用率报告(与默认等价)。

sar -u 1 2
04:53:41        CPU     %user     %nice   %system   %iowait    %steal     %idle
04:53:42        all      9.47      0.00      9.81      0.34      0.00     80.38
04:53:43        all     13.87      0.00     22.26      3.42      0.00     60.45
Average:        all     11.67      0.00     16.05      1.89      0.00     70.39

5.1.4 sar -u ALL 1 2 CPU 全字段(含 irq/soft/guest 等)

-u ALL 扩展出 %irq、%soft、%guest、%gnice 等细分列。

sar -u ALL 1 2
04:53:43        CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest    %gnice     %idle
04:53:44        all     26.69      0.00     22.70      2.43      0.00      0.00      5.55      0.00      0.00     42.63
04:53:45        all     17.63      0.00      6.78      0.17      0.00      0.00      5.25      0.00      0.00     70.17
Average:        all     22.11      0.00     14.65      1.29      0.00      0.00      5.40      0.00      0.00     56.56

5.1.5 sar -r 1 2 内存使用

-r 报告物理内存使用与提交量。

sar -r 1 2
04:53:45    kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
04:53:46      4701072  23257536   8125752     24.76    615716  17540472  23687188     67.84   8375480  17126584     60828
04:53:47      4604400  23195952   8186576     24.94    618288  17567704  23959448     68.62   8448384  17156196     84564
Average:      4652736  23226744   8156164     24.85    617002  17554088  23823318     68.23   8411932  17141390     72696

5.1.6 sar -r ALL 1 2 内存全字段

-r ALL 追加 kbanonpg、kbslab、kbkstack、kbpgtbl、kbvmused 等细分。

sar -r ALL 1 2
04:53:47    kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty  kbanonpg    kbslab  kbkstack   kbpgtbl  kbvmused
04:53:48      4519484  23176516   8205232     25.00    620240  17626952  24191900     69.28   8443960  17217572    142052   7367164   1847728     50160    148132     84808
04:53:49      4372188  23144896   8236616     25.10    621520  17735080  24203744     69.32   8476152  17326908    248444   7399284   1854232     50160    148140     84840
Average:      4445836  23160706   8220924     25.05    620880  17681016  24197822     69.30   8460056  17272240    195248   7383224   1850980     50160    148136     84824

5.1.7 sar -B 1 2 分页统计

-B 报告页换入/换出与缺页(fault)等。

sar -B 1 2
04:53:49     pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
04:53:50         4.00  32812.00  94468.00      0.00  67663.00      0.00      0.00      0.00      0.00
04:53:51         0.00  23812.00  90641.00      0.00  67877.00      0.00      0.00      0.00      0.00
Average:         2.00  28312.00  92554.50      0.00  67770.00      0.00      0.00      0.00      0.00

5.1.8 sar -S 1 2 交换空间使用

-S 报告交换空间(swap)使用量与占比。

sar -S 1 2
04:53:51    kbswpfree kbswpused  %swpused  kbswpcad   %swpcad
04:53:52      1673528    423620     20.20     50932     12.02
04:53:53      1673528    423620     20.20     50932     12.02
Average:      1673528    423620     20.20     50932     12.02

5.1.9 sar -W 1 2 交换换入换出

-W 报告每秒换入/换出页数(pswpin/s、pswpout/s)。

sar -W 1 2
04:53:53     pswpin/s pswpout/s
04:53:54         0.00      0.00
04:53:55         0.00      0.00
Average:         0.00      0.00

5.1.10 sar -b 1 2 I/O 与传送速率

-b 报告块设备 I/O 事务与读写速率(后台跑 dd 制造写负载)。

sar -b 1 2
04:53:55          tps      rtps      wtps      dtps   bread/s   bwrtn/s   bdscd/s
04:53:56       730.00     13.00    717.00      0.00    280.00 635952.00      0.00
04:53:57       749.00      0.00    749.00      0.00      0.00  44960.00      0.00
Average:       739.50      6.50    733.00      0.00    140.00 340456.00      0.00

💡 说明:12.5.2 的 sar -b 比旧版多出 dtps(丢弃事务)与 bdscd/s(丢弃速率)两列。

5.1.11 sar -d -p 1 2 块设备活动

-d 报告块设备活动,-p 使用友好设备名(如 sda)。

sar -d -p 1 2
Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)
04:53:58       622.00      0.00 166440.00      0.00    267.59      0.89      1.44     10.70 sda
04:53:59       681.00      4.00  17436.00      0.00     25.61      0.47      0.69      4.20 sda
Average:       651.50      2.00  91938.00      0.00    141.12      0.68      1.05      7.45 sda

💡 说明:列依次为 tps、rkB/s、wkB/s、dkB/s、areq-sz、aqu-sz、await、%util,最后是设备名。12.x 中设备名列在行末(旧版在行首)。

5.1.12 sar -n DEV 1 2 网络设备统计

-n DEV 报告每个网卡的收发包、收发字节与接口利用率。

sar -n DEV 1 2
04:53:59        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
04:54:00           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:54:00         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

5.1.13 sar -n EDEV 1 1 网络错误统计

-n EDEV 报告网卡收发错误、丢包、冲突等。

sar -n EDEV 1 1
04:54:01        IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
04:54:02           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:54:02         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

5.1.14 sar -n SOCK 1 2 socket 使用

-n SOCK 报告各类 socket 数量(tcp/udp/raw 等)。

sar -n SOCK 1 2
04:54:02       totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
04:54:03           49         1         1         0         0         0
04:54:04           49         1         1         0         0         0
Average:           49         1         1         0         0         0

5.1.15 sar -n IP,TCP,UDP 1 1 协议层流量

-n IP,TCP,UDP 组合报告 IP/TCP/UDP 协议层流量。

sar -n IP,TCP,UDP 1 1
04:54:04       irec/s  fwddgm/s    idel/s     orq/s   asmrq/s   asmok/s  fragok/s fragcrt/s
04:54:05         0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

04:54:04     active/s passive/s    iseg/s    oseg/s

5.1.16 sar -n NFS,NFSD 1 1 NFS 统计

-n NFS,NFSD 报告 NFS 客户端与服务端调用统计。

sar -n NFS,NFSD 1 1
04:54:05       call/s retrans/s    read/s   write/s  access/s  getatt/s
04:54:06         0.00      0.00      0.00      0.00      0.00      0.00

04:54:05      scall/s badcall/s  packet/s     udp/s     tcp/s     hit/s    miss/s   sread/s  swrite/s saccess/s sgetatt/s

5.1.17 sar -q 1 2 队列与平均负载

-q 报告运行队列长度、进程数与 1/5/15 分钟平均负载。

sar -q 1 2
04:54:06      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
04:54:07            2      3071      1.68      1.72      2.00         0
04:54:08            2      3060      1.68      1.72      2.00         0
Average:            2      3066      1.68      1.72      2.00         0

5.1.18 sar -q ALL 1 1 队列 + PSI 压力失速信息

-q ALL 在负载列之外追加 PSI(Pressure Stall Information)列(12.4+)。

sar -q ALL 1 1
04:54:08      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
04:54:09            3      3042      1.68      1.72      2.00         0

04:54:08     %scpu-10  %scpu-60 %scpu-300     %scpu

💡 说明:本环境(未开启 PSI 暴露)下 PSI 列只打印表头、数据为空,属正常现象。

5.1.19 sar -w 1 2 上下文切换

-w 报告进程创建速率与上下文切换速率。

sar -w 1 2
04:54:09       proc/s   cswch/s
04:54:10       143.00  28839.00
04:54:11       316.00  32746.00
Average:       229.50  30792.50

5.1.20 sar -y 1 1 TTY 活动

-y 报告 TTY 设备活动,本环境未启用 TTY 统计。

sar -y 1 1
Requested activities not available

5.1.21 sar -v 1 2 inode/文件句柄/伪终端

-v 报告内核表状态:inode、文件句柄(file-nr)、伪终端数等。

sar -v 1 2
04:54:11    dentunusd   file-nr  inode-nr    pty-nr
04:54:12       754197     15168    752301         5
04:54:13       758440     15136    754490         5
Average:       756318     15152    753396         5

5.1.22 sar -H 1 1 大页使用

-H 报告巨页(hugepage)使用情况。

sar -H 1 1
04:54:13    kbhugfree kbhugused  %hugused kbhugrsvd kbhugsurp
04:54:14            0         0      0.00         0         0
Average:            0         0      0.00         0         0

5.1.23 sar -I SUM 1 2 中断汇总

-I SUM 汇总每秒中断数。

sar -I SUM 1 2
04:54:14         INTR    intr/s
04:54:15          sum  26438.00
04:54:16          sum  22152.00
Average:          sum  24295.00

5.1.24 sar -m ALL 1 1 电源管理(CPU 频率)

-m ALL 报告 CPU 频率与 USB 设备电源信息。

sar -m ALL 1 1
04:54:16        CPU       MHz
04:54:17        all   3417.60

04:54:16        BUS  idvendor    idprod  maxpower manufact                product

5.1.25 sar -F MOUNT 1 1 文件系统统计

-F MOUNT 报告各挂载点文件系统空间与 inode 占用。

sar -F MOUNT 1 1
04:54:17     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused MOUNTPOINT
04:54:18       533076    271668     33.76     38.21  49560528   2835504      5.41 /etc/hostname

Summary:     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused MOUNTPOINT

5.1.26 sar -z 1 2 忽略无活动设备行

-z(需结合磁盘报告)跳过统计期内无活动的设备行。

sar -z 1 2
Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)
04:54:19       713.00      8.00  16304.00      0.00     22.88      0.49      0.69      9.40 sda
04:54:20      1479.00      4.00  27620.00      0.00     18.68      0.69      0.47     25.10 sda
Average:      1096.00      6.00  21962.00      0.00     20.04      0.59      0.54     17.25 sda

5.1.27 sar --human --pretty 1 1 人类可读格式

--human 按 G/M/K 转换单位、--pretty 对齐显示(12.x 支持,配合内存报表)。

sar -r --human --pretty 1 1
04:54:20    kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
04:54:21         3.7G     22.0G      7.9G     25.4%    637.7M     17.3G     22.6G     67.9%      8.1G     16.9G    328.4M
Average:         3.7G     22.0G      7.9G     25.4%    637.7M     17.3G     22.6G     67.9%      8.1G     16.9G   328.4M

5.1.28 sar -A 当天全部历史数据

-A 等价于全量活动报告,读取当日历史数据的全部统计项。

sar -A
(输出行数: 459)

04:27:38        CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest    %gnice     %idle
04:27:40        all     13.65      0.00     11.64      0.00      0.00      0.00      8.21      0.00      0.00     66.50
04:27:40          0      9.68      0.00      7.37      0.00      0.00      0.00     14.75      0.00      0.00     68.20

💡 说明:本环境 sar -A 共输出 459 行(含重启标记、逐项表头与逐 CPU 明细),上面仅节选 CPU 段。

5.1.29 sar -f 指定数据文件读取

-f 指定要读取的历史数据文件(默认读当天文件)。

sar -f /var/log/sysstat/sa06
04:40:03        all      9.89      0.02     12.38      0.18      0.00     77.53
04:50:01        all     13.14      0.02     13.47      0.37      0.00     72.99
Average:        all     11.59      0.02     13.02      0.27      0.00     75.11

5.1.30 sar -i 3600 按时间步长筛选历史

-i 按秒数缩略历史数据采样(这里按 1 小时步长选择记录)。

sar -f /var/log/sysstat/sa06 -i 3600
04:27:25     LINUX RESTART	(6 CPU)

5.1.31 sar -s/-e 历史时间窗口

-s 起始时间、-e 结束时间,限定历史回放窗口。

sar -f /var/log/sysstat/sa06 -s 04:40:00 -e 04:50:00
04:50:01        all     13.14      0.02     13.47      0.37      0.00     72.99
Average:        all     11.59      0.02     13.02      0.27      0.00     75.11

5.1.32 sar -o 实时采样写入文件并回放

-o 把实时采样结果以二进制写入自定义文件,之后可用 sar -f 回放。

sar -u -o /tmp/sa_capture 2 2
sar -f /tmp/sa_capture
04:54:23        all     14.75      0.00     11.02      0.34      0.00     73.90
04:54:24        all     16.95      0.00     10.85      0.00      0.00     72.20
Average:        all     15.98      0.00     15.14      0.40      0.00     68.48

5.1.33 sar 读取历史日数据(-f 其他日期文件)

/var/log/sysstat/ 目录下按 saDD 命名(DD 为当月日);本环境当日文件为 sa06。

ls /var/log/sysstat/
sa06

5.2 iostat(CPU 与块设备 I/O)

5.2.1 iostat -V 版本

iostat -V
sysstat version 12.5.2

5.2.2 iostat 默认输出

默认自系统启动以来的 CPU 汇总 + 磁盘汇总(仅显示表头、后接各样本)。

iostat
Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.77    0.01   10.59    0.78    0.00   75.85

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd

5.2.3 iostat -c 1 2 仅 CPU

-c 只显示 CPU 统计。

iostat -c 1 2
Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.77    0.01   10.59    0.78    0.00   75.85

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          18.68    0.00   16.13    0.34    0.00   64.86

5.2.4 iostat -d 1 2 仅磁盘

-d 只显示磁盘统计。

iostat -d 1 2
Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda             499.93     27044.07      4460.76         0.00 10589701932 1746707457          0
Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda             432.00         8.00     11144.00         0.00          8      11144          0

5.2.5 iostat -x 1 2 磁盘扩展统计

-x 输出扩展统计;12.5.2 把读/写/丢弃(d)/刷盘(f)拆分展示,并含 await/队列深度等。

iostat -x 1 2
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
sda            391.32  27044.00    50.43  11.42   27.13    69.11  108.61   4460.77   168.32  60.78    2.90    41.07    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00   10.93   6.23
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
sda              1.00     52.00     0.00   0.00    3.00    52.00  779.00  20028.00   180.00  18.77    1.07    25.71    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.84   5.30

5.2.6 iostat -k / -m 单位切换

-k 以 KB 显示(默认)、-m 以 MB 显示。

iostat -k sda
iostat -m sda
Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda             499.93     27043.93      4460.81         0.00 10589702008 1746738629          0
Device             tps    MB_read/s    MB_wrtn/s    MB_dscd/s    MB_read    MB_wrtn    MB_dscd
sda             499.93        26.41         4.36         0.00   10341505    1705799          0

5.2.7 iostat -t 时间戳

-t 在输出中附带时间戳。

iostat -t sda
Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)
10/06/26 04:54:27
Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda             499.93     27043.93      4460.81         0.00 10589702008 1746738629          0

5.2.8 iostat -p ALL 含全部分区

-p ALL 显示磁盘及其全部分区。

iostat -p ALL
Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda             499.93     27043.93      4460.81         0.00 10589702008 1746738629          0
sda1              0.00         0.01         0.00         0.00       4108          0          0
sda2              0.00         0.04         0.00         0.00      13920          5          0
sda3            499.93     27043.86      4460.81         0.00 10589673140 1746738584          0

5.2.9 iostat -z -y 忽略无活动设备与首份汇总

-z 跳过无活动设备、-y 跳过第一份「自启动以来」汇总报告。

iostat -z -y 1 1
Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda             431.00         0.00     10276.00         0.00          0      10276          0
Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd

5.2.10 iostat 指定设备

直接跟设备名只统计该磁盘。

iostat sda
Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sda             499.93     27043.80      4460.87         0.00 10589702008 1746769485          0

5.3 mpstat(逐 CPU 状态与中断)

5.3.1 mpstat -V 版本

mpstat -V
sysstat version 12.5.2

5.3.2 mpstat 1 3 全局 CPU(实时)

每个 1 秒采样 3 次,输出所有 CPU 汇总(all 行)。

mpstat 1 3
Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)

04:57:16     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
04:57:17     all   13.16    0.00    8.89    0.34    0.00    3.59    0.00    0.00    0.00   74.02
04:57:18     all    5.97    0.00    3.92    0.00    0.00    3.58    0.00    0.00    0.00   86.52
04:57:19     all   14.33    0.00   11.70    0.16    0.00    6.26    0.00    0.00    0.00   67.55
Average:     all   11.19    0.00    8.21    0.17    0.00    4.50    0.00    0.00    0.00   75.93

5.3.3 mpstat -P ALL 1 2 逐 CPU 统计

-P ALL 除 all 汇总外,逐核输出(本环境 6 CPU,节选 0–4)。

mpstat -P ALL 1 2
Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)

04:57:19     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
04:57:20     all    8.32    0.00    3.23    0.34    0.00    3.90    0.00    0.00    0.00   84.21
04:57:20       0    6.86    0.00    1.96    0.00    0.00    7.84    0.00    0.00    0.00   83.33
04:57:20       1    8.91    0.00    2.97    0.00    0.00    4.95    0.00    0.00    0.00   83.17
04:57:20       2    9.18    0.00    3.06    0.00    0.00    3.06    0.00    0.00    0.00   84.69
04:57:20       3    6.19    0.00    2.06    1.03    0.00    2.06    0.00    0.00    0.00   88.66
04:57:20       4   12.37    0.00    7.22    0.00    0.00    2.06    0.00    0.00    0.00   78.35

5.3.4 mpstat -P 0 1 2 指定单个 CPU

-P 0 只统计 CPU 0。

mpstat -P 0 1 2
Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:       0   10.75    0.00    9.35    0.00    0.00   12.15    0.00    0.00    0.00   67.76

5.3.5 mpstat -u 1 2 CPU 利用率(等价默认)

-u 显式指定 CPU 利用率报告(与默认等价)。

mpstat -u 1 2
04:57:25     all    6.16    0.00    3.25    0.34    0.00    2.74    0.00    0.00    0.00   87.50
Average:     all    9.40    0.00    6.18    0.17    0.00    3.90    0.00    0.00    0.00   80.36

5.3.6 mpstat -I SUM 1 2 中断汇总

-I SUM 汇总所有 CPU 的中断速率。

mpstat -I SUM 1 2
Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)

04:57:25     CPU    intr/s
04:57:26     all  16548.00

5.3.7 mpstat -I SCPU 1 1 软中断逐 CPU

-I SCPU 按 CPU 细分软中断(TIMER/NET_RX/SCHED/RCU 等)。

mpstat -I SCPU 1 1
Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)

04:57:27     CPU       HI/s    TIMER/s   NET_TX/s   NET_RX/s    BLOCK/s IRQ_POLL/s  TASKLET/s    SCHED/s  HRTIMER/s      RCU/s
04:57:28       0       0.00      38.00       0.00      82.00       0.00       0.00       0.00      78.00       0.00     262.00
04:57:28       1       0.00      33.00       0.00     107.00       0.00       0.00       0.00     321.00       0.00     267.00
04:57:28       2       0.00      68.00       0.00     231.00       0.00       0.00       0.00     160.00       0.00     246.00

5.4 pidstat(逐进程统计,后台制造负载)

测试前先在后台持续占用 CPU(yes 命令)制造负载,便于观测实时进程数据。

5.4.1 pidstat -V 版本

pidstat -V
sysstat version 12.5.2

5.4.2 pidstat 1 2 全部进程 CPU(实时)

默认报告各进程 CPU 使用率(节选活动进程 yes)。

pidstat 1 2
04:57:28      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:57:29        0     10307   43.00   54.00    0.00    3.00   97.00     3  yes
04:57:29      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:57:30        0     10307   46.00   54.00    0.00    0.00  100.00     3  yes
Average:      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
Average:        0     10307   44.50   54.00    0.00    1.50   98.50     -  yes

5.4.3 pidstat -u 1 2 CPU(等价默认)

-u 等价于默认的 CPU 报告。

pidstat -u 1 2
04:57:30      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:57:31        0     10307   45.00   55.00    0.00    0.00  100.00     3  yes
04:57:31      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:57:32        0     10307   44.00   56.00    0.00    0.00  100.00     3  yes

5.4.4 pidstat -r 1 2 内存缺页与使用

-r 报告进程缺页(minflt/majflt)与内存占用(无活动进程时只打印表头)。

pidstat -r 1 2
04:57:32      UID       PID  minflt/s  majflt/s     VSZ     RSS   %MEM  Command
04:57:33      UID       PID  minflt/s  majflt/s     VSZ     RSS   %MEM  Command
Average:      UID       PID  minflt/s  majflt/s     VSZ     RSS   %MEM  Command

5.4.5 pidstat -d 1 2 块设备 I/O(节选 dd)

-d 报告进程级块设备读写速率与 I/O 延迟。

pidstat -d 1 2
04:57:34      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
04:57:35      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
Average:      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command

5.4.6 pidstat -w 1 2 上下文切换

-w 报告进程自愿/非自愿上下文切换。

pidstat -w 1 2
04:57:37      UID       PID   cswch/s nvcswch/s  Command
04:57:38      UID       PID   cswch/s nvcswch/s  Command
Average:      UID       PID   cswch/s nvcswch/s  Command

5.4.7 pidstat -p 1 1 2 指定 PID(systemd)

-p 1 只统计 PID=1(systemd)。

pidstat -p 1 1 2
04:57:40        0         1    0.00    0.00    0.00    0.00    0.00     5  systemd
04:57:41        0         1    0.00    0.00    0.00    0.00    0.00     5  systemd
Average:        0         1    0.00    0.00    0.00    0.00    0.00     -  systemd

5.4.8 pidstat -p ALL 1 1 全部进程

-p ALL 统计系统全部进程(本环境共 29 行输出,节选前两行)。

pidstat -p ALL 1 1
Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)

04:57:42      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:57:43        0         1    0.00    0.00    0.00    0.00    0.00     5  systemd
04:57:43        0        23    0.00    0.00    0.00    0.00    0.00     5  systemd-journal

5.4.9 pidstat -l 1 1 完整命令行

-l 显示完整命令行(不截断)。

pidstat -l 1 1
04:57:43      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:57:44      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
Average:      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command

5.4.10 pidstat -C yes 1 2 按命令名过滤

-C yes 只统计名为 yes 的进程。

pidstat -C yes 1 2
Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)

04:57:45      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:57:46        0     10307   44.00   55.00    0.00    1.00   99.00     5  yes

04:57:46      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command

5.4.11 pidstat -t 1 2 线程级统计

-t 显示线程(TGID/TID)级别统计。

pidstat -t 1 2
04:57:47      UID      TGID       TID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:57:48      UID      TGID       TID    %usr %system  %guest   %wait    %CPU   CPU  Command
Average:      UID      TGID       TID    %usr %system  %guest   %wait    %CPU   CPU  Command

5.4.12 pidstat -u -r -d -w 1 1 多项组合

多个报告项可同时指定,依次输出各块。

pidstat -u -r -d -w 1 1
04:57:49      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command

04:57:49      UID       PID  minflt/s  majflt/s     VSZ     RSS   %MEM  Command
04:57:50        0     10347      2.00      0.00    2820    1664   0.01  pidstat
04:57:50        0     10348     65.00      0.00    3688    1920   0.01  sed

04:57:49      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command

💡 说明:本帧采集窗口里只有 pidstat 自身与 sed 产生内存缺页,故仅 -r 块有数据行;-d/-w 块无活动数据、只保留表头。

5.4.13 pidstat -T TASK / -T CHILD 任务与子进程统计

-T TASK(默认)统计任务本身;-T CHILD 统计任务及其子进程累计(CPU 值单位为毫秒)。

pidstat -T TASK -p 1 1 1
pidstat -T CHILD -p 1 1 1
04:57:51        0         1    0.00    0.00    0.00    0.00    0.00     5  systemd
Average:        0         1    0.00    0.00    0.00    0.00    0.00     -  systemd
04:57:52        0         1         0         0         0  systemd
Average:        0         1         0         0         0  systemd

5.5 sadf / sadc(数据文件导出与底层采集)

5.5.1 sadf -V 版本

sadf -V
sysstat version 12.5.2

5.5.2 sadf -d 数据库可导入格式

-d 把二进制数据文件转成分号分隔的 CSV(便于导入数据库 / 表格)。

sadf -d /var/log/sysstat/sa06
mon-ubuntu2204;-1;2026-10-06 04:27:25 UTC;LINUX-RESTART	(6 CPU)
# hostname;interval;timestamp;CPU;%user;%nice;%system;%iowait;%steal;%idle
mon-ubuntu2204;2;2026-10-06 04:27:40 UTC;-1;13.65;0.00;19.85;0.00;0.00;66.50
mon-ubuntu2204;2;2026-10-06 04:27:42 UTC;-1;15.96;0.00;21.56;2.63;0.00;59.85

5.5.3 sadf -x XML 输出

-x 输出 XML 格式。

sadf -x /var/log/sysstat/sa06
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sysstat PUBLIC "DTD v3.9 sysstat //EN"
"http://pagesperso-orange.fr/sebastien.godard/sysstat-3.9.dtd">
<sysstat
xmlns="http://pagesperso-orange.fr/sebastien.godard/sysstat"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pagesperso-orange.fr/sebastien.godard sysstat.xsd">
	<sysdata-version>3.9</sysdata-version>
	<host nodename="mon-ubuntu2204">
		<sysname>Linux</sysname>

5.5.4 sadf -j JSON 输出

-j 输出 JSON 格式。

sadf -j /var/log/sysstat/sa06
{"sysstat": {
	"hosts": [
		{
			"nodename": "mon-ubuntu2204",
			"sysname": "Linux",
			"release": "6.8.0-138-generic",
			"machine": "x86_64",
			"number-of-cpus": 6,

5.5.5 sadf -H 仅数据文件表头

-H 只输出数据文件头,不解析样本,可查看该文件包含哪些活动(activity)类型。

sadf -H /var/log/sysstat/sa06
System activity data file: /var/log/sysstat/sa06 (0x2175)
File created by sar/sadc from sysstat version 12.5.2
Genuine sa datafile: yes (0)
Host: Linux 6.8.0-138-generic (mon-ubuntu2204) 	10/06/26 	_x86_64_	(6 CPU)
File date: 2026-10-06
File time: 04:27:25 UTC (1791260845)
Timezone: UTC
File composition: (1,1,12),(0,0,9),(2,0,1)
Size of a long int: 8
HZ = 100
Number of activities in file: 19
Extra structures available: N
List of activities:
01: [8b] A_CPU                Y:   7	(10,0,0)
02: [8b] A_PCSW               N:   1	(1,1,0)
04: [8a] A_SWAP               N:   1	(0,2,0)
05: [8a] A_PAGE               N:   1	(0,8,0)
06: [8b] A_IO                 N:   1	(7,0,0)
07: [8b] A_MEMORY             N:   1	(17,0,0)
34: [8b] A_HUGE               N:   1	(4,0,0)
08: [8b] A_KTABLES            N:   1	(4,0,0)
09: [8c] A_QUEUE              N:   1	(3,0,3)
11: [8c] A_DISK               Y:  19	(3,3,8)
12: [8d] A_NET_DEV            Y:   2	(7,0,1)
13: [8c] A_NET_EDEV           Y:   2	(9,0,0)
14: [8a] A_NET_NFS            N:   1	(0,0,6)
15: [8a] A_NET_NFSD           N:   1	(0,0,11)
16: [8a] A_NET_SOCK           N:   1	(0,0,6)
39: [8a] A_NET_SOFT           Y:   7	(0,0,5)
40: [8a] A_PSI_CPU            N:   1	(1,3,0)
41: [8a] A_PSI_IO             N:   1	(2,6,0)
42: [8a] A_PSI_MEM            N:   1	(2,6,0)

💡 说明:Number of activities in file: 19,其中 A_PSI_CPU/A_PSI_IO/A_PSI_MEM 是 12.x 新增的 PSI 活动类型。

5.5.6 sadf -t 本地时区时间格式

-t 用本地时区时间戳替换 Unix 时间戳。

sadf -d -t /var/log/sysstat/sa06
mon-ubuntu2204;-1;2026-10-06 04:27:25;LINUX-RESTART	(6 CPU)
# hostname;interval;timestamp;CPU;%user;%nice;%system;%iowait;%steal;%idle
mon-ubuntu2204;2;2026-10-06 04:27:40;-1;13.65;0.00;19.85;0.00;0.00;66.50

5.5.7 sadf 指定统计项(透传 sar 选项)

sadf 支持通过 -- <sar_options> 把统计项透传给 sar;选项一览如下(-l 为 12.x 独有)。

sadf --help
Usage: sadf [ options ] [ <interval> [ <count> ] ] [ <datafile> | -[0-9]+ ]
Options are:
[ -C ] [ -c | -d | -g | -j | -l | -p | -r | -x ] [ -H ] [ -h ] [ -T | -t | -U ] [ -V ]
[ -O <opts> [,...] ] [ -P { <cpu> [,...] | ALL } ]
[ --dev=<dev_list> ] [ --fs=<fs_list> ] [ --iface=<iface_list> ]
[ -s [ <hh:mm[:ss]> ] ] [ -e [ <hh:mm[:ss]> ] ]
[ -- <sar_options> ]

5.5.8 sadc 直接采集到文件 + sar -f 回放

sadc 是底层采集器,可直接采样写入自定义二进制文件,再用 sar -f 回放。

/usr/lib/sysstat/sadc 1 2 /tmp/sa_manual
sar -f /tmp/sa_manual
04:57:52        CPU     %user     %nice   %system   %iowait    %steal     %idle
04:57:53        all     23.18      0.00     12.91      0.17      0.00     63.74
04:57:54        all     32.33      0.00     14.91      0.00      0.00     52.76
Average:        all     27.73      0.00     13.91      0.08      0.00     58.28
Ubuntu 22.04 sysstat 安装与命令参数详解 - Quzuo