在日常运维中大多数线上问题都可以归类为资源类CPU/内存/磁盘、网络类连通性/丢包/延迟/端口、服务类进程挂了/端口占用/依赖不可用。本文提供一套“从现象到定位再到验证”的排查路径并给出常用命令与判断标准帮助你把故障处理从“猜”变成“可复现、可回滚”。一、排查总流程建议照这个顺序做先确认影响面影响哪些业务/实例/用户区间是全量还是局部发生时间是否与发布、定时任务、扩容缩容、网络变更相关再确认是否为资源问题CPU 飙高内存耗尽磁盘满了IO 慢使用率高不等于故障但“异常波动 同时伴随告警”才是强信号。检查网络与端口端口是否监听是否可达是否出现大量 TIME_WAIT/连接失败常见安全组/防火墙变更、路由问题、DNS 问题、上游端口不通。定位到具体进程/服务进程是否崩溃重启日志是否出现关键错误依赖数据库/Redis/中间件/对象存储是否不可用或连接耗尽验证修复是否真正解决观察指标恢复CPU/内存/IO/RT/错误率回放请求/压测验证检查是否存在“修复后延迟恢复/缓存未热”等问题二、CPU 异常从“谁在耗 CPU”到“为什么耗”1快速看全局bashtopuptimempstat -P ALL 1vmstat 1判断要点CPU 飙满通常伴随应用线程忙循环、GC 过频、加密/压缩异常、慢查询导致的计算放大、死锁重试等。vmstat里如果看到大量rrun queue持续升高说明 CPU 压力确实存在。2定位进程级别bashps -eo pid,ppid,cmd,%cpu,%mem --sort-%cpu | head -n 153定位到线程/函数可选但很快使用pid后可进一步bashtop -H -p pid若能用perf生产建议谨慎bashperf top -p pid输出思路找到“最高 CPU 进程/线程”→ 对照日志/发布变更 → 结合慢点业务查询、批处理、编码解码、加解密进一步确认。三、内存异常从“是否 OOM”到“谁占用了谁没释放”1快速查看bashfree -hvmstat 1dmesg -T | grep -i -E oom|killed process2找进程bashps -eo pid,ppid,cmd,%mem,%cpu --sort-%mem | head -n 203排查系统层面缓存/页回收bashcat /proc/meminfo | egrep MemTotal|MemFree|Buffers|Cached|SwapTotal|SwapFree判断要点是否发生 OOM Killerdmesg很关键如果 swap 频繁使用且响应变慢通常是内存不足/泄漏/缓存失控。Java 服务关注GC 日志、堆使用、Metaspace、Direct Buffer容器场景常见。四、磁盘/IO 异常从“满了”到“慢了/写不动”1磁盘容量bashdf -hT2找目录占用最常见bashdu -sh * | sort -h | tail -n 20du -sh --max-depth1 /var/log | sort -h | tail -n 203找写入瓶颈/IO 等待bashiostat -x 1iotop -oPaqqq常见事故日志未轮转导致磁盘满临时目录/tmp爆满数据库/队列落盘异常导致 IO 飙高五、网络问题连通性、延迟、丢包、端口与 DNS1连通性测试目标从远到近从本机到网关bashping gateway从本机到对端bashping ip测延迟与抖动bashmtr -rwzbc 200 ip2端口可达性bashnc -vz ip porttelnet ip port3确认监听与端口占用bashss -lntup | grep portlsof -i :port判断要点端口监听但请求失败多半是应用逻辑/鉴权/上游依赖端口不通优先排查防火墙、安全组、路由、DNS、服务是否在正确网卡监听4DNS 问题排查bashnslookup domaindig domain trace六、服务类故障进程挂了、端口占用、依赖超时1看进程是否存活与重启频率bashsystemctl status servicejournalctl -u service -n 200 --no-pager2查看端口是否仍被占用常见服务未完全退出bashss -lntup | grep port3看日志关键词按优先级建议先搜这些关键词Exception/ERROR/CRITICALtimeout/connect/refusedOOM/out of memory业务关键错误码按你们系统定义bashgrep -Rin --color -E ERROR|Exception|timeout|refused|OOM /var/log/app | tail -n 200七、Nginx / 反向代理常见故障速查运维高频1配置与重载bashnginx -tsystemctl reload nginx2看日志bashtail -n 200 /var/log/nginx/error.logtail -n 200 /var/log/nginx/access.log3快速判断502/504/499502上游返回异常/上游连接失败常见后端挂了、协议不匹配504上游超时常见慢查询/下游抖动499客户端提前关闭常见超时/网关策略/压测流量过大八、复盘方向故障现象错误率/延迟/告警/时间点影响范围哪些实例/哪些接口初步判断资源/网络/服务/依赖关键证据top/free/df/日志/链路定位过程命令与结论修复方案重启/扩容/回滚/清理日志/调整参数验证结果指标回落、请求成功率恢复复盘改进告警补齐、阈值优化、限流、日志策略