帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  Linux系统资源监控实战:pidstat命令解析

Linux系统资源监控实战:pidstat命令解析

2025-12-05 17:54:55 178

欢迎来到8455线路检测中心技术小课堂,每天分享一个技术小知识。

 

一、pidstat是什么?为什么运维工程师必须掌握它?

pidstatsysstat工具包中的一个强大命令,专门用于监控Linux系统中进程级别的资源使用情况。与tophtop等工具不同,pidstat能够提供按进程、按用户的详细资源统计,并且可以记录历史数据进行分析。

 

为什么选择pidstat而不是其他工具?

工具

优势

劣势

top/htop

实时交互,界面直观

历史数据难追踪,批量监控不便

ps aux

快照信息,轻量级

瞬时数据,无法看趋势变化

pidstat

可周期性监控,可记录历史,可聚合分析

需要主动运行,无交互界面

 

 

一、安装与基础使用

# Ubuntu/Debian sudo apt-get install sysstat

# CentOS/RHEL sudo yum install sysstat

# 启用数据收集(默认每10分钟收集一次) sudo systemctl enable sysstat sudo systemctl start sysstat

 

最简单的使用:查看所有进程的CPU使用

# 查看所有进程的CPU使用情况 pidstat

image.png


三、pidstat的核心功能深度解析

3.1 CPU监控模式(最常用)

基本语法:

# 每隔2秒统计一次,共统计5次 pidstat 2 5

 

实战场景:发现CPU占用异常的进程

# 按CPU使用率排序查看 pidstat | sort -k8 -rn | head -10

# 持续监控,每2秒刷新,重点观察%usr(用户态CPU)和%system(内核态CPU) pidstat -u 2

 

关键指标解析:

%usr:进程在用户态运行的时间百分比

%system:进程在内核咨询服务的时间百分比

%wait:进程等待I/O的时间百分比

%CPU:总CPU使用率 = %usr + %system + %guest

CPU:进程最后运行的CPU编号

 

3.2 内存监控模式

基本用法:

# 查看内存使用情况 pidstat -r

image.png

指标深度解析:

指标

含义

诊断价值

minflt/s

次要缺页异常(每秒)

从缓存/内存加载数据,正常情况

majflt/s

主要缺页异常(每秒)

从磁盘加载数据,需关注!

VSZ

虚拟内存大小

进程申请的地址空间

RSS

实际物理内存

进程实际使用的物理内存

%MEM

内存使用百分比

直观的内存占用比例

 

实战场景:发现内存泄漏

# 监控Java进程的内存增长

pidstat -r -p 1234 1 60 | tee java_memory.log

 

# 分析输出,如果RSS持续增长不释放,可能存在内存泄漏

# 注意观察majflt/s,如果持续很高说明频繁换页,内存不足

 

pidstat高级技巧

4.1 按用户聚合统计

# 查看每个用户的资源使用汇总

pidstat -u -t

# 或

pidstat -u | awk '{user[$2]+=$8} END{for(u in user) print u, user[u]}' | sort -k2 -rn

 

5.2 监控子进程

# 监控进程及其所有子进程

pidstat -T CHILD

# 输出会包含父进程和所有子进程的聚合统计

 

5.3 导出数据用于分析

# CSV格式输出,方便导入Excel或Python分析

pidstat -urd 1 60 --human | awk 'BEGIN{OFS=","} NR>3{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14}' > monitoring.csv

 

# 使用gnuplot绘图

pidstat -u 1 300 | grep java | awk '{print $1, $8}' > cpu_data.txt

gnuplot -e "set terminal png; set output 'cpu_usage.png'; plot 'cpu_data.txt' with lines title 'Java CPU Usage'"

 

五、实践总结

掌握pidstat,你就能在性能问题出现时,快速定位到具体的进程和资源瓶颈,这是运维工程师必备的核心技能之一。建议在日常工作中多加练习,形成肌肉记忆,在真正的生产故障来临时,你就能从容应对。

 

更多技术知识,8455线路检测中心期待与你一起探索。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题:
XML 地图