拿下技术面上传简历

一个容器内存 limit 为 12GB 的服务,在 QPS 稳定的情况下,内存 8 小时内从 2GB 涨到接近 12GB 后被 OOMKilled 重启,重启后再次重复这个过程。请说明:你怎么判断这是内存泄漏、缓存膨胀,还是“正常增长但没设上限”?你会看哪些指标、用什么工具定位到具体对象?你会在线上直接 dump 堆吗,这个动作的代价是什么、有没有代价更小的替代路径?

代码能力与调试排障调试排障3-5 年知识点 1 个

面试官在考什么

判断候选人能否区分 RSS、堆内、堆外与缓存等不同内存口径,是否理解容器 OOMKilled 的触发条件,以及能否在线上用低开销手段做内存取证。

内存问题定位

回答框架 · 前两步

  1. 先对齐口径:容器 OOMKilled 由 cgroup 的 RSS 触发,堆内没涨也可能是堆外内存、direct buffer、mmap、线程栈或未归还给 OS 的内存;要分 RSS、堆 in use/committed、缓存分别观察。
  2. 判断泄漏还是缓存:看 GC 后的基线是否持续抬升;稳定 QPS 下正常的 LRU 缓存应趋于收敛,命中率和条目数也应该稳定。

还有 3 条答案要点、 3 层追问、 4 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

同一能力域的其他题