一、进程监控与资源分析
1.1 交互式进程管理利器:htop
传统top命令的增强版htop提供彩色交互界面,支持鼠标操作和树状进程展示。在排查CPU或内存占用异常时,其直观的进程树结构能快速定位父子进程关系。例如通过htop -d 30可设置30秒刷新间隔,配合F6键可按CPU/内存/IO等维度实时排序。
典型应用场景:
- 快速识别异常进程的完整调用链
- 通过颜色区分进程状态(运行/休眠/僵尸)
- 鼠标点击直接发送信号(如kill/renice)
1.2 精准定位资源消耗大户
CPU消耗TOP10:
ps aux --sort=-%cpu | head -n 11
该组合通过管道将进程列表按CPU使用率降序排列,head -n 11保留表头和前10个进程。对于容器化环境,可添加-eo pid,ppid,cmd,%cpu参数自定义输出字段。
内存消耗TOP10:
ps aux --sort=-%mem | head -n 11
关键参数说明:
-e:显示所有进程-o:自定义输出格式--sort:排序规则(支持多字段排序)
1.3 动态系统监控:vmstat
vmstat 2 10
该命令每2秒采样一次,共采集10次系统状态。重点监控指标:
- procs:r列(等待CPU的进程数)持续高于CPU核心数表明CPU瓶颈
- memory:swpd列(交换分区使用量)突增可能引发性能抖动
- io:bi/bo列(块设备读写)异常可能预示存储问题
二、存储系统诊断
2.1 磁盘I/O深度分析
iostat -dx 1 5
参数解析:
-d:显示磁盘统计-x:扩展统计信息1 5:每秒采样,共5次
关键指标解读:
%util:磁盘利用率(接近100%表示I/O饱和)await:I/O平均响应时间(毫秒级)svctm:设备处理I/O请求的平均时间
2.2 存储空间可视化
基础空间检查:
df -hT
输出包含文件系统类型(如ext4/xfs)和挂载点信息,便于识别异常分区。
目录级空间分析:
du -sh /var/log/* | sort -rh | head -n 10
该组合可找出占用空间最大的10个日志目录,-h参数确保输出人类可读格式。
三、系统健康度评估
3.1 负载指标解读
uptime
输出示例:10:30:45 up 20 days, 3:15, 2 users, load average: 1.25, 0.80, 0.55
负载值含义:
- 1分钟/5分钟/15分钟平均负载
- 理想值应小于CPU核心数(如4核服务器负载持续>4需警惕)
3.2 内存使用优化
详细内存分析:
free -h --si
参数说明:
-h:人类可读格式--si:使用1000为基数(而非1024)
输出解读:
available列比free更准确反映可用内存buff/cache部分在需要时可被系统自动回收
3.3 网络连接监控
活跃连接统计:
ss -s
输出包含各类连接状态的数量统计,配合:
ss -tulnp | grep :80
可查看特定端口的连接详情,-p参数显示关联进程。
四、高级组合技巧
4.1 进程快照与对比
ps aux > processes.log && sleep 10 && ps aux > processes_10s.logdiff processes.log processes_10s.log
通过定时快照对比,可发现短暂出现的异常进程。
4.2 资源消耗趋势分析
sar -u 1 3 > cpu_trend.log
该命令记录3次CPU使用率数据,可用于分析:
- 用户态/内核态占比变化
- 系统空闲率波动
- 上下文切换次数异常
4.3 存储性能基准测试
dd if=/dev/zero of=./testfile bs=1G count=1 oflag=direct
通过直接I/O测试存储真实性能,重点观察:
- 写入速度(MB/s)
- IOPS(每秒I/O操作数)
- 延迟(毫秒级)
五、运维最佳实践
5.1 监控告警配置建议
- 设置
htop的自定义告警阈值(如CPU>80%变红) - 配置
vmstat的持续监控脚本,当r值持续>核心数时触发告警 - 对
iostat的%util设置分级告警(80%警告/95%严重)
5.2 性能优化流程
- 使用
top/htop定位高负载进程 - 通过
strace -p PID分析系统调用 - 用
perf top查看热点函数 - 结合
iostat/vmstat确认瓶颈类型 - 实施针对性优化(如调整进程优先级、优化存储配置)
5.3 故障排查模板
# 1. 检查系统负载uptime; vmstat 1 3# 2. 分析进程资源占用ps aux --sort=-%cpu | head -n 11ps aux --sort=-%mem | head -n 11# 3. 检查存储I/Oiostat -dx 1 5df -hT# 4. 查看网络连接ss -tulnp | grep :port
本文介绍的命令组合经过生产环境验证,特别适合处理以下场景:
- 突发流量导致的性能下降
- 内存泄漏的快速定位
- 存储I/O瓶颈分析
- 多维度系统健康度评估
建议运维人员将这些命令组合封装成脚本,结合监控系统实现自动化巡检。对于大规模集群环境,可考虑将这些诊断能力集成到统一的运维管理平台中。