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