记一次glibc导致的堆外内存泄露


记一次glibc导致的堆外内存泄露

文章插图
阿里妹导读
本文记录一次glibc导致的堆外内存泄露的排查过程 。
问题现象
团队核心应用每次发布完之后,内存会逐步占用,不重启或者重新部署就会导致整体内存占用率超过90% 。
记一次glibc导致的堆外内存泄露

文章插图
【记一次glibc导致的堆外内存泄露】发布2天后的内存占用趋势
探索原因一
堆内找到原因
出现这种问题,第一想到的就是集群中随意找一台机器,信手dump一下内存,看看是否有堆内存使用率过高的情况 。
内存泄露
记一次glibc导致的堆外内存泄露

文章插图
泄露对象占比
发现 占比18.8%
问题解决
是common-division这个包引入的

记一次glibc导致的堆外内存泄露

文章插图
暂时性修复方案
  1. 当前加载俄罗斯(RU)国际地址库,改为一个小国家地址库 以色列(IL)
  2. 当前业务使用场景在补发场景下会使用,添加打点日志,确保是否还有业务在使用该服务,没人在用的话,直接下掉(后发现,确还有业务在用呢



      推荐阅读