掌握Linux运维“天罡术”:一套工具通关全链路,故障无所遁形
线上炸锅别慌,原生工具就是排障杀手锏
一、核心工具原理:搞懂底层逻辑,排查才不盲目
1. top/htop:系统负载实时仪表盘
2. perf:CPU性能剖析神器
3. lsof:进程文件句柄侦探
4. dmesg:内核日志黑匣子
5. mpstat:多核CPU细分监控
6. iostat:磁盘IO性能监控
7. vmstat:虚拟内存+系统全局概览
|
速记核心分工:top/htop看全局,vmstat看宏观,mpstat看CPU核,iostat看磁盘IO,lsof看进程资源,dmesg看内核,perf挖CPU热点。 |
二、使用原则+应用场景:对症下药,不瞎用不滥用
通用使用原则
-
排查顺序:先全局(top/vmstat)→ 再细分(mpstat/iostat)→ 后深挖(perf/lsof)→ 查内核(dmesg),层层递进不混乱 -
权限要求:大部分工具普通用户可使用,perf、dmesg部分内核日志需root权限 -
线上采样规范:perf采样避免长时间运行,iostat/mpstat加采样间隔减少性能损耗,关键日志重定向到文件留存 -
数据结合:单一工具数据仅供参考,多工具交叉验证才能定位根因
分工具精准应用场景
✅ top/htop适用场景
-
快速判断系统负载、CPU/内存整体占用率 -
定位占用资源最高的进程PID -
查看进程状态(运行、阻塞、僵死) -
应急排查第一步,快速筛选异常进程
✅ perf适用场景
-
CPU使用率高但找不到耗资源的代码 -
线程死循环、上下文切换频繁、锁竞争激烈 -
程序性能优化、热点函数定位 -
内核态+用户态CPU耗时分析
✅ lsof适用场景
-
端口被占用,查找占用进程 -
进程句柄泄漏、文件描述符耗尽 -
删除文件但空间未释放,定位占用进程 -
查看进程打开的网络连接、文件、管道
✅ dmesg适用场景
-
服务器无故重启、硬件故障(磁盘、网卡、内存) -
进程被OOM killer杀死 -
驱动加载失败、内核报错、系统panic -
底层硬件与内核交互异常
✅ mpstat适用场景
-
多核服务器单核CPU飙高、负载不均衡 -
软中断/硬中断占用CPU过高 -
精细化分析每个CPU核心的工作状态
✅ iostat适用场景
-
磁盘util率100%、IO等待严重 -
业务卡顿怀疑磁盘读写瓶颈 -
磁盘IOPS、吞吐量异常排查
✅ vmstat适用场景
-
快速判断系统整体健康度 -
内存不足、swap置换频繁 -
进程阻塞、IO等待(wa)过高 -
上下文切换、运行队列过长排查
三、案例实战:线上高频故障,一步一操作抄作业
前置准备:工具安装(CentOS/RHEL)
|
安装sysstat(含mpstat/iostat/vmstat)、perf、htop、lsofyum install -y sysstat perf htop lsof |
实战1:top+perf定位CPU飙高根因
|
1. top查看全局负载,定位耗CPU的PID(如PID=12345)top# 2. perf采样CPU热点(-g追踪调用栈,-p指定进程,采样10秒)perf record -g -p 12345 sleep 10# 3. 解析采样数据,查看热点函数perf report |
实战2:iostat+vmstat排查磁盘IO阻塞
|
1. vmstat快速查看全局IO等待(1秒采样一次,持续5次)vmstat 1 5# 2. iostat查看磁盘设备IO详情(-x展示扩展指标,-d仅看磁盘)iostat -x -d 1 2# 关键指标:%util接近100%说明磁盘满载,await过高说明IO响应慢 |
实战3:lsof定位端口占用+文件句柄泄漏
|
lsof -i :8080 |
|
查找已删除但被进程占用的文件lsof | grep deleted# 杀死对应进程释放空间,或重启进程 |
实战4:dmesg排查OOM杀进程/内核异常
|
过滤OOM相关日志dmesg | grep -i oom# 过滤内核错误、panic日志dmesg | grep -i errordmesg | grep -i panic |
实战5:mpstat排查多核CPU负载不均
|
查看所有CPU核心的使用率(1秒采样一次)mpstat -P ALL 1 |
四、总结:掌握这套排障心法,线上故障稳准狠
核心价值复盘
-
宏观排查:靠top/htop+vmstat快速定位故障方向 -
细分定位:靠mpstat/iostat锁定CPU/IO瓶颈 -
深挖根因:靠perf+lsof精准定位进程/代码问题 -
底层兜底:靠dmesg排查内核/硬件级异常
夜雨聆风