记一次因为内存过消耗过大的排查
环境
阿里云服务器学生机,ubuntu16.4
排查过程
先看看阿里云的控制端显示的内存占用情况
内存情况 top排查
并没有发现异常的程序。也没有显示内存有占用过大。
使用指令查看占用的物理内存,
ps aux|awk '{sum+=$6} END {print sum/1024}'
使用指令,核实进程的最大使用内存量
ps -eo pid,rss,pmem,pcpu,vsz,args --sort=rss
发现最大的内存占用进程最大瞬间只是使用了百分之18,并未达到1.8G的占用情况,还是未找到异常
使用slabtop指令,看到dentry占用过大。
slabtop
排查到的可能是因为,在我跟打器服务中使用的tcp协议,有可能是频繁的进行创建实例导致的频繁销毁而并未被回收。
打印查看程序的日志,发现有用户一直重复的连接TCP端口,导致无限创建实例而并未释放。
跟打器重复连接后经审查代码发现,因为客户端上掉线进行的无限重连的逻辑错误,修改之后内存恢复正常。
网友评论