拿下技术面上传简历

一个 7x24 常驻的服务,容器 limit 4GiB。内存曲线呈『锯齿状缓慢抬升』:每次回收后的低点比上一次高大约 50MB,约 5 天后被 OOMKilled,重启立刻恢复正常。请给出你的定位方案:怎么区分是真泄漏、缓存无界、还是内存碎片;在容器里你用什么工具拿到能站得住脚的证据;以及最后你依据什么决定是『改代码』还是『调 limit / 换策略』。

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

面试官在考什么

判断候选人能否把内存问题拆成堆内泄漏、堆外分配、缓存无界、碎片几类不同成因,并具备在受限的线上容器里取证、以及做修代码与调策略之间工程取舍的能力。

内存问题定位

回答框架 · 前两步

  1. 先做二分:回收后低点持续抬升,指向对象被长期持有(疑似泄漏);低点稳定但峰值贴着 limit,更像是瞬时峰值、无界缓存或碎片——这两类修法完全不同。
  2. 工具链要对得上:语言级堆快照比对象类型和引用链、allocator 统计看 arena 与碎片、/proc/<pid>/smaps 看匿名页与文件页、cgroup memory.stat 确认涨的是哪一类内存。

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

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

同一能力域的其他题