sysstat(5)pidstat命令
pidstat命令介绍
pidstat
是 Linux 系统下的一种性能监控工具,属于 sysstat
软件包。它主要用于监控系统中各个进程的 CPU、内存、I/O 等资源使用情况。与 top
或 ps
不同,pidstat
提供了更详细的统计信息,并且可以按时间间隔持续输出,便于分析进程的性能表现。它常用于排查系统瓶颈或特定进程的资源占用问题。
使用方法
安装 sysstat
包后(例如在 Ubuntu 上使用 sudo apt install sysstat
),即可使用 pidstat
命令。基本语法如下:
pidstat [选项] [时间间隔] [次数]
- 时间间隔:以秒为单位,指定采样频率。
- 次数:指定采集的次数,默认无限次(直到手动停止,例如按 Ctrl+C)。
常用选项
-u
:显示 CPU 使用情况(默认选项,显示各个进程cpu使用情况)。-r
:显示内存使用情况。-d
:显示磁盘 I/O 统计信息。-w
:显示任务切换(上下文切换)统计。-p <PID>
:指定特定进程的 PID 来监控。(ALL 所有进程pid降序排列)-p ALL
:监控所有进程。-t
:显示线程级别的统计信息。-l
:显示完整的命令行路径和参数。
示例
监控所有进程的 CPU 使用,每 2 秒刷新一次,持续 5 次:
pidstat -u 2 5监控特定进程的 CPU 和内存使用:
pidstat -ur -p 1234 2查看所有进程的 I/O 统计:
pidstat -d 1显示线程级别的统计信息:
pidstat -t 2
5.组合命令
1 | pidstat -u -p ALL # 所有进程cpu使用情况 |
结果字段解释
pidstat
的输出字段因选项不同而异,以下是常见选项下的字段含义:
1. -u
(CPU 使用统计)
UID PID %usr %system %guest %CPU CPU Command
- UID:进程所属用户的 ID。
- PID:进程 ID。
- %usr:进程在用户态使用的 CPU 百分比。
- %system:进程在内核态使用的 CPU 百分比。
- %guest:进程在虚拟机中使用的 CPU 百分比(适用于虚拟化环境)。
- %CPU:进程总的 CPU 使用百分比(用户态 + 内核态)。
- CPU:进程运行所在的 CPU 核心编号。
- Command:启动进程的命令名称。
2. -r
(内存使用统计)
UID PID %mem minflt/s majflt/s VSZ RSS Command
- %mem:进程占用的内存百分比。
- minflt/s:每秒次缺页错误(minor faults),无需从磁盘加载页面。
- majflt/s:每秒主缺页错误(major faults),需要从磁盘加载页面。
- VSZ:虚拟内存大小(KB)。
- RSS:实际使用的物理内存(Resident Set Size,KB)。
- Command:进程的命令名称。
3. -d
(磁盘 I/O 统计)
UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
- kB_rd/s:每秒从磁盘读取的数据量(KB)。
- kB_wr/s:每秒写入磁盘的数据量(KB)。
- kB_ccwr/s:每秒被取消的写操作数据量(KB,通常与文件系统缓存相关)。
- Command:进程的命令名称。
4. -w
(任务切换统计)
UID PID cswch/s nvcswch/s Command
- cswch/s:每秒上下文切换次数(voluntary,进程主动放弃 CPU,例如等待 I/O)。
- nvcswch/s:每秒非自愿上下文切换次数(non-voluntary,例如时间片用尽)。
- Command:进程的命令名称。
注意事项
- 如果未指定选项,默认显示 CPU 使用情况(
-u
)。 - 输出中第一行通常是系统启动以来的平均值,后续行是指定时间间隔内的统计。
- 使用
-p SELF
可以监控pidstat
自身的资源使用。