尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Linux pidstat 命令超详细教程|进程性能监控与故障排查实战

Linux pidstat 命令超详细教程|进程性能监控与故障排查实战 1. 命令简介pidstat 是 sysstat 性能监控工具集中的一个强大命令用于监控 Linux 系统中全部或指定进程的 CPU、内存、设备 I/O、线程及上下文切换等系统资源的使用情况。它能够以用户指定的时间间隔和次数周期性地输出详细的进程级性能指标是系统性能分析和故障排查的常用工具。首次运行 pidstat 时它会显示自系统启动以来的累计统计信息。后续运行则默认显示自上次执行该命令以来的增量统计信息。通过指定时间间隔和次数用户可以灵活地获取所需的实时监控数据。2. 语法格式bash运行pidstat [ options ] [ interval [ count ] ]options: 一个或多个选项用于指定监控的资源类型、输出格式和筛选条件。interval: 可选两次报告之间的时间间隔秒。指定此参数后pidstat 将进入周期性监控模式。count: 可选在周期性监控模式下生成报告的次数。若不指定则会持续输出直到手动中断如按 CtrlC。3. 常用选项及说明pidstat 主要通过不同的选项来监控不同类型的资源。以下选项可以组合使用。3.1 资源监控选项表格选项说明-u默认选项 监控进程的 CPU 使用情况。-r监控进程的内存使用情况。-d监控进程的 I/O 使用情况磁盘读写。-w监控进程的上下文切换情况。-s监控进程的栈使用情况。-v显示进程的内核表使用情况如 inode、文件句柄等。-h以水平单行格式显示所有活动便于其他程序如脚本解析。输出中不显示时间戳。-l在输出中显示完整的命令名称及其所有参数而不仅仅是命令的基本名称。3.2 进程与线程筛选选项表格选项说明-p { pid | ALL }监控指定的进程 ID (pid)或使用 ALL 监控所有活动进程。-t在报告中显示线程级别的详细信息。通常与 -p 或 -u/-r 等选项结合使用。-T { TASK | CHILD | ALL }指定监控的范围・TASK: 仅报告独立的进程任务的统计信息。・CHILD: 报告指定进程及其所有子线程的全局统计信息。这些统计信息在子线程终止时才会被收集和汇总。・ALL: 同时报告 TASK 和 CHILD 的信息。3.3 其他选项表格选项说明-V显示 pidstat 的版本信息并退出。-I在 SMP对称多处理系统中此选项会使 % CPU 等指标的计算基于逻辑 CPU 核心数进行平均有助于在多核环境下评估负载。4. 示例用法4.1 监控所有进程的 CPU 使用情况默认bash运行pidstat或明确指定 -u 选项bash运行pidstat -u 2 5此命令将每隔 2 秒采样一次共采样 5 次输出所有进程的 CPU 使用率报告。输出字段说明 % usr: 进程在用户空间占用 CPU 的百分比。 % system: 进程在内核空间占用 CPU 的百分比。 % guest: 进程在虚拟机中占用 CPU 的百分比如果适用。 % CPU: 进程总的 CPU 使用百分比% usr % system % guest。 CPU: 该进程最后运行所在的那个 CPU 的逻辑编号。4.2 监控指定进程的内存使用情况bash运行pidstat -r -p 1234 1此命令将每隔 1 秒监控一次进程 ID 为 1234 的进程的内存使用情况。输出字段说明 minflt/s: 每秒发生的次要缺页错误数通常无需从磁盘加载内存页。 majflt/s: 每秒发生的主要缺页错误数需要从磁盘加载内存页对性能影响较大。 VSZ: 虚拟内存集大小 (KiB)即进程申请的虚拟内存总量。 RSS: 常驻内存集大小 (KiB)即进程实际使用的、未被换出的物理内存大小。 % MEM: RSS 占系统总物理内存的百分比。4.3 监控所有进程的 I/O 使用情况bash运行pidstat -d输出字段说明 kB_rd/s: 每秒从物理磁盘读取的数据量 (KiB)。 kB_wr/s: 每秒向物理磁盘写入的数据量 (KiB)。 kB_ccwr/s: 每秒被任务取消的写入磁盘数据量 (KiB)。当任务截断脏页缓存时会发生。4.4 监控进程及其线程的上下文切换bash运行pidstat -w -t -p 5678此命令监控进程 5678 及其所有线程的上下文切换情况。-t 选项会额外列出每个线程的信息。输出字段说明 cswch/s: 每秒自愿上下文切换的次数例如进程因等待 I/O 而主动让出 CPU。 nvcswch/s: 每秒非自愿上下文切换的次数例如进程的时间片用完被系统强制调度。4.5 综合监控与易解析格式bash运行pidstat -urd -h -p ALL 1 3此命令组合了 CPU (-u)、内存 (-r)、I/O (-d) 监控针对所有进程 (-p ALL)以易解析的格式 (-h) 输出每秒一次共 3 次。5. 注意事项安装要求pidstat 命令通常包含在 sysstat 软件包中。如果系统中未安装请使用包管理器进行安装例如 基于 Debian/Ubuntu 的系统sudo apt-get install sysstat 基于 RHEL/CentOS 的系统sudo yum install sysstat 或 sudo dnf install sysstat权限要求某些系统资源的监控如其他用户的进程信息可能需要 root 权限。若输出信息不完整请尝试使用 sudo 执行命令。数据解读默认情况下首次运行显示的是自系统启动以来的累计数据。此后周期性运行显示的是自上次采样以来的增量数据这有助于观察资源占用的变化趋势。
返回列表