线上故障排查实战:5 个经典场景的完整排查链路(运维面试必问)CPU 飙高、容器 OOM、磁盘满了、502/504、慢查询突增——这 5 个场景几乎覆盖了 80% 的线上故障。本文给出每个场景的完整排查链路、止损动作和面试答法,文末附自用刷题小程序。为什么面试官爱问你怎么排查因为排查过程最能看出一个人的基本功:知不知道先止损还是先定位每一步为什么看这个指标(而不是背命令)有没有机制沉淀(而不是重启解决)下面 5 个场景,每个都按「现象 → 排查链路 → 根因分类 → 止损 → 预防」拆开讲。场景一:CPU 飙到 100%排查链路# 1. 确认范围:是单机还是整个集群?load 多高?topuptime# 2. 定位进程(按 CPU 排序)top-P# 3. 定位线程(Java 应用关键一步)top-Hppid# 4. 线程号转十六进制printf%x\ntid# 5. 抓栈(Java)jstackpid|grep-A30hex# 通用手段:看热点函数perftop-ppid根因分类现象可能根因用户态高(us)业务死循环、频繁 GC、锁竞争内核态高(sy)系统调用频繁、上下文切换、软中断(si 高 网络)频繁 GCjstat -gcutil pid 1000看 FGC 次数与耗时止损与预防先保留现场(抓栈、dump),再重启/降级能限流先限流,别让雪崩扩散预防:CPU 告警、压测覆盖、代码评审面试加分点“我会先区分用户态还是内核态——这决定了是查代码还是查系统调用;另外我会先抓栈保留现场再重启,否则根因就丢了。”场景二:容器反复重启(OOMKilled)排查链路# 1. 看 Pod 状态与退出原因kubectl describe podpod|grep-A5Last State# 2. 看退出码# 137 OOM 或被 kill;1 应用报错;143 SIGTERM# 3. 看上次容器日志kubectl logspod-p# 4. 进容器看进程内存kubectlexec-itpod--top关键判断是内存泄漏还是峰值超限?持续增长 → 泄漏(查堆内存、堆外内存)平时正常、高峰被杀 → limits 太小或流量突增Java 堆外内存容易被忽略:DirectByteBuffer、Netty、JNI止损与预防止损:调大 limits、限流、重启预防:压测摸清峰值、加内存监控、JVM 参数调优场景三:磁盘满了第一步:区分两种满df-h# 空间满df-i# inode 满(大量小文件)这两种满的处理方式完全不同。第二步:定位大目录du-sh/*2/dev/null|sort-rh|head常见元凶:日志、core dump、容器日志(/var/lib/docker/containers)、K8s(/var/log/pods)。经典陷阱:删了文件,空间没释放文件被进程持有句柄,rm只解除目录引用,inode 仍被占用。lsof|grepdeleted# 找到持有进程# 处理:重启/reload 该进程;日志类可 kill -USR1 让其重开日志预防logrotate 轮转 max-size/max-file磁盘与 inode 双告警应用侧禁止往 stdout 打海量 debug 日志场景四:网关 502 / 504两者本质不同状态码含义排查方向502upstream 没接住请求后端进程挂了、端口不通、连接被拒504连上了但处理超时后端慢:慢查询、下游依赖、GC 停顿排查链路# 1. 看网关错误日志tail-f/var/log/nginx/error.log# 502 → connect() failed / connection refused# 504 → upstream timed out# 2. 绕过网关直连后端,确认是网关还是服务问题curl-vhttp://backend-ip:port/health# 3. 看连接数是否打满ss-snetstat-an|grepport|wc-l止损与预防502:先恢复后端(重启/扩容),再查为什么挂504:先看后端耗时分布(是全部慢还是个别接口),必要时降级非核心依赖预防:健康检查、超时与重试配置、连接池监控场景五:MySQL 慢查询突然增多排查顺序(很重要)先看变更:最近有没有发布、加索引、数据量增长、流量突增定位 TOP SQL:-- 慢查询日志按耗时排序mysqldumpslow-s t/var/log/mysql/slow.log|head看执行计划:EXPLAINSELECT...;-- 重点:type(ALL 全表扫)、rows(扫描行数)、Extra(filesort/temporary)看锁与连接:show processlist、show engine innodb status常见根因索引失效:函数操作、隐式类型转换、前导通配符、不满足最左前缀深分页:limit 100000, 20→ 游标分页或延迟关联大事务、锁等待止损与预防应急:kill 慢查询、限流、降级非核心查询根治:加/改索引、SQL 改写、历史数据归档预防:慢 SQL 门禁进发布流程、定期巡检 TOP SQL面试怎么答:一个通用框架不管问哪个场景,按这个结构答就不会乱:现象与影响面 → 止损动作 → 定位过程(逐步缩小范围) → 根因 → 改进与沉淀四个加分点:先止损后根因——说清为什么先做这个动作说判断依据——不是背命令,而是看到 A 说明 B,所以查 C给量化结果——“P99 从 800ms 降到 120ms”讲沉淀——文档、SOP、监控告警、演练机制反面例子:“重启一下就好了” —— 面试官听到这句基本就结束追问了。这些排查链路我整理成了一个小程序上面这些场景的题目(以及更多)我整理成了一个小程序「系统运维面试题学习随手记刷」,295 道题,按 8 个模块分类:中间件 · DevOps · SRE · 云原生 · Linux · AIOps · Shell · 综合开放题题库全部免费,不用登录,每题都有参考答案,就是本文这种排查步骤 回答结构的形式把简历和 JD 粘进去,会出 20 道针对你经历的押题,并给一份适配度分析还有录像练习:摄像头答题 → 回放 → 按要点自评,练表达(本地处理,不上传)微信搜索小程序「系统运维面试题学习随手记刷」你遇到过最离谱的线上故障是什么?评论区聊聊。
企业数字化 ERP 产品动态
相关推荐
崩溃定位三步走:core、gdb与日志实战指南 1. 崩溃定位这件事,为什么值得单独拎出来讲设备调试干久了你会发现,写代码的时间远没有查崩溃的时间多。尤其是嵌入式设备、后台服务、桌面客户端这类跑在真实环境里的程序,一旦挂掉,留给你的往往只有一行冷冰冰的提示,… · 2026/9/23 23:25:27
加法器与译码器:从真值表到Verilog仿真的组合逻辑实战指南 如果你正在学数电,或者刚拿到一份“加法器与译码器”的实验任务,我猜你大概会在网上搜这些东西:3线-8线译码器、74LS138引脚图、全加器真值表、行波进位加法器延迟计算。这些都是这门课里绕不开的硬骨头,也是考试、实验报告、甚至… · 2026/9/23 23:25:27
Numba 类型推断机制详解:从 Numba IR 到编译期类型重建的完整原理与实践 编译器高性能计算 【免费下载链接】numba NumPy aware dynamic Python compiler using LLVM 项目地址: https://gitcode.com/gh_mirrors/nu/numba 点击查看 免费下载 导读
Numba 是基于 LLVM 的 NumPy 感知的动态 Python 编译器,其核心挑战在于&#x… · 2026/9/24 0:03:38
企业级项目dragonballz_e159-1的技术架构与实现方案 1. 项目背景解析"dragonballz_e159-1"这个项目名称看似简单,实际上包含了丰富的技术内涵。从命名规则来看,这很可能是一个涉及数据处理或系统集成的技术项目。这类编号通常出现在企业级应用开发、自动化脚本或数据处理流水线中,其中… · 2026/9/24 0:03:11
DEiT图像分类实战:数据高效Transformer的训练与推理 简介:面向深度学习与计算机视觉学习者,这份DEiT实战资源围绕Facebook提出的DeiT模型,展示如何在不依赖外部数据集的情况下,利用知识蒸馏策略完成ImageNet级别的高效训练,并落地到图像分类任务中。DeiT通过引入蒸馏令牌… · 2026/9/24 0:02:58
合法合规的轻量级媒体播放器开发指南 我无法根据该标题生成符合要求的博文内容。原因如下:标题“橙子电视绿化版_1.0_20240417绿化精简”属于典型的应用软件非官方修改版本命名格式,其中“绿化版”“精简版”等表述,在国内软件分发与版权合规语境下,普遍指向对正版软件… · 2026/9/24 0:02:45
Asterix 开源项目:航空监视数据编解码框架解析与实操 1. 初识 Asterix:这个开源项目到底在解决什么问题第一次看到 Asterix 这个项目名,很多人会联想到那个法国漫画角色,但在开源圈子里,Asterix 指的是一套围绕航空监视数据编解码构建的开源工具集。它的核心任务非常明确:… · 2026/9/24 0:02:39
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44