运维工程师面试深度解码:从救火队员到系统稳定性的架构师
运维面试的本质,不是在考察你记不记得
kill -9和kill -15的区别,而是看你能否在系统大面积报 502 时,用 3 分钟定位到根因,用 5 分钟止损,再用 30 分钟写出让研发团队心服口服的事故报告。
第一章 重新定义运维:为什么传统“脚本小子”正在被淘汰
1.1 一个思想实验:用 SLA 倒推面试问题
假设你的团队负责一个日活千万的在线教育平台。SLA 承诺 99.99%。某天晚上 9 点上课高峰期,数据库 CPU 飙升到 100%,持续 5 分钟后自动恢复。你事后查明是研发新上线的一个慢查询导致。作为运维负责人,你要面试一个候选人。你问他:“遇到这种情况,你第一件事做什么?”
初级回答:重启数据库 / kill 掉那个连接。
高级回答:先通过 show processlist 和慢查询日志快速定位到具体 SQL 和客户端 IP,联系研发确认是否可以 kill 该 session;同时评估该 SQL 的调用方是否可用降级方案;在恢复后立即添加监控告警,针对该类 SQL 做自动限流。
资深回答:在 kill 之前先抓取现场:pt-query-digest 记录慢查询样本,tcpdump 抓取网络包留作证据,并检查该时间段的 QPS