第2章 高频面试问题与回答框架

本章核心 掌握三类高频问题(故障排查、性能优化、架构设计)的回答结构,理解不同公司(大厂/中厂/创业)的考察侧重点,用通用框架应对变化。
通用面试回答框架(五步法) ① 复述问题 确认场景+目标 ② 定位根因 日志/监控/命令 ③ 方案对比 最少2种折中 ④ 实施步骤 灰度/回滚方案 ⑤ 效果验证 指标+监控确认 公司侧重点如何影响回答? 大厂加分项:系统性思维、SLA保障、可扩展性 | 中厂:快速定位、动手能力、成本意识
面试官心理 回答不仅有技术深度,更要体现“结构化表达”和“业务理解”。用五步法框架避免遗漏关键得分点。

问题1:服务器CPU持续飙高(100%),线上服务响应变慢,你怎么排查和解决?

考察点故障排查流程熟练度、工具链使用(top/htop/perf)、对业务与资源关联的理解
回答框架1. 复述:确认现象(CPU高,服务慢)与影响范围。2. 定位:top看进程→strace/perf top找热点函数→结合业务日志。3. 方案:临时降级/限流,永久优化(代码或配置)。4. 实施:先回滚有嫌疑的上线,再灰度修复。5. 验证:监控指标恢复正常。
示例回答
先用 top 发现 java 进程占满 CPU,再用 perf top -p PID 看到频繁 GC。排查发现新上线功能循环创建对象导致。临时重启并回滚,后续优化对象池并增加 GC 监控告警。整个过程用时 8 分钟,未造成大面积故障。
可能追问如果 perf 看不到具体函数怎么办?如何区分用户态和内核态 CPU?如何设计一键排查脚本?
避坑提醒⚠️ 不要上来就重启,先保留现场(coredump/监控快照);切忌只定位不给出根因分析。

问题2:你们之前做过哪些性能优化?能不能详细讲一个例子?

考察点实战深度(是否真实落地)、量化意识(优化前后指标)、系统性思维(全局考虑,不盲目调参)
回答框架1. 选择有代表性的优化(非 trivial)。2. STAR结构描述:S-业务场景与瓶颈指标;T-目标(TP99/吞吐量);A-分析过程(工具+根因);R-量化结果。3. 小结可迁移经验。
示例回答
Nginx SSL 握手太慢(TP99=2.1s)。分析发现会话缓存未开启 + 使用旧版 ECDHE 曲线。优化:开启 ssl_session_cache 共享 10MB,升级曲线为 X25519,TP99 降至 220ms,连接数提升 3 倍。后续推广到全集群。
可能追问为什么选择这个优化而非其他?优化后有没有副作用?如果缓存命中率低怎么办?
避坑提醒⚠️ 避免只谈“改了内核参数就快了”,要说明为什么改、改后如何验证。量化指标必须有百分比或值。

问题3:假如让你设计一个高可用架构来支撑日均10亿请求,你会怎么做?

考察点架构设计能力、负载均衡/容灾/降级方案、对资源成本和公司规模的权衡
回答框架1. 明确约束:流量峰值、可用性目标(99.99%)、预算。2. 分层设计:LB(LVS/ Nginx)→ 网关(限流+熔断)→ 应用(无状态+水平扩展)→ 缓存/DB(读写分离+分片)。3. 关键细节:健康检查、自动扩缩容、灰度发布、故障演练。4. 监控与告警体系。5. 总结自认为最重要的取舍。
示例回答
假设日活千万,设计四层:LVS 主备做入口高可用;Nginx 层按业务分域名;应用层用 K8s 自动伸缩;DB 层主从+Proxy 读写分离。单机房故障时通过 DNS 切换到备用机房。核心成本在 DB,采用按时间分表+冷热分离。
可能追问如果备用机房也挂了怎么办?如何保证数据最终一致性?容量规划怎么做?
避坑提醒⚠️ 不要只画大饼(k8s+云原生),要有具体的组件选型依据和 trade-off 分析。大厂更关注“系统性”而非单个技术。
本章小结 高频问题的核心不是背答案,而是掌握结构化五步法和量化表达习惯。不同公司侧重点:
• 大厂(BAT/TMD)——重视系统设计、SLA意识、团队协作
• 中厂(独角兽/上市公司)——看重独立排查能力、成本优化、快速迭代
• 创业公司——要求全栈能力、动手解决具体故障、Owner意识

常见问题分类与答题结构速查表

问题类型典型问题推荐答题结构公司偏好
故障排查CPU/内存/IO异常,进程hang现象→排查路径→根因→恢复→预防所有公司必考
性能优化慢查询、网络延迟、高负载基准→瓶颈→方案对比→实施→量化收益大厂看重系统性,中厂看重工具链
架构设计高可用、扩展性、容灾约束→分层→核心机制→验证→取舍大厂偏爱,创业公司偏向务实
脚本/自动化日志分析、批量操作、监控告警需求→设计→实现要点→效果中厂和创业更关注
场景问答线上误操作、配置变更失败还原→止血→修复→复盘考察应急心态与流程规范