服务 OOM 情况分析
OOM
简称内存溢出,正常情况下服务是部署在服务器上的,oom 表示服务占用的内存达到服务器的可用内存,如果是 k8s 的话,pod 是可配置服务最大的内存,超过则 oom
导致 OOM 情况分析
所有会导致内存增大并且溢出的可能性
OOM 场景 | 分析 | |
---|---|---|
代码本身 OOM | 代码存储的内存量过大,比如,map、slice 存了很多数据,没释放 | |
接口请求阻塞 | 一个请求耗时很长,导致 rpc/tcp 的链接池爆满,每个链接没释放,那内存也不会释放,多个链接就多个内存累加,直到内存 oom | |
慢查询 SQL | 慢查询导致一个请求链接延迟不被释放,导致内存累加 oom | |
死锁 | 死锁导致一个请求链接延迟不被释放,导致内存累加 oom | |
SQL 返回数据量大 | 数据量过大,内存 oom |