场景:
最近生产上的一台阿里云ECS服务器遭遇病毒攻击,导致内存总是占满,重启了也没用,最崩溃的时候直接无法连接,还是在阿里云提交了工单让工程师处理了以后才能继续连接,可是内存占满的问题依然没有解决,最终也是搜了不少资料以后才得以解决。排查:
1、登录问题Linux服务器。
2、执行free和top命令,没有找到占用大量内存的进程。
3、执行如下命令,统计所有进程占用的物理内存,相加后与free命令结果进行核对,没有找到占用大量内存的进程。
ps aux|awk '{sum+=$6} END {print sum/1024}'
4、进一步排查进程消耗内存,执行如下命令,根据rss列排序结果,核实最大消耗内存进程,未查找出异常进程
ps -eo pid,rss,pmem,pcpu,vsz,args --sort=rss
5、继续执行以下操作,检测slab内存分配器占用情况,执行如下命令,未发现异常
cat /proc/m

当Linux服务器内存消耗过高时,通过执行free、top和自定义命令排查无果,进一步使用atop工具发现大页缓存(hptot)占用问题。关闭大页缓存后,发现内存被病毒脚本占据,该脚本篡改了sysctl.conf文件,导致内存满载。解决方法包括扩展swap内存以安装atop,清除病毒脚本并修复配置文件。
最低0.47元/天 解锁文章
3325





