实例内存使用率过高

最近更新时间: 2023-03-24 14:42:14

现象描述
Linux 云服务器实例出现由内存问题引发的故障。例如,系统内部服务响应速度变慢、服务器登录不上、系统触发 OOM(Out Of Memory)等。
可能原因
可能是实例内存使用率过高等问题引起。通常情况下当实例内存使用率持续高于90%时,可判断为实例内存使用率过高。
排查思路
1.参考 处理步骤,判断问题是否由内存使用率过高引起。
2.参考 其他内存问题典型案例分析,定位问题原因。
处理步骤
1.参考 相关操作,查看内存使用率是否过高。
o内存使用率过高,则执行下一步。
o内存使用率正常,则请参考 其他内存问题典型案例分析,进一步定位问题原因。
2.在系统内部执行 top 命令后按 M,查看 “RES” 及 “SHR” 列是否有进程占用内存过高。
o否,则执行下一步。
o是,则对应进程类型进行操作,详情请参见 分析进程。
3.执行以下命令,查看共享内存占用是否过高。
cat /proc/meminfo | grep -i shmem
4.执行如下命令,查看不可回收的 slab 内存占用是否过高。
cat /proc/meminfo | grep -i SUnreclaim
5.执行以下命令,查看是否存在内存大页。
cat /proc/meminfo | grep -iE "HugePages_Total|Hugepagesize"
oHugePages_Total 输出为0,则请参考 其他内存问题典型案例分析,进一步定位问题原因。
oHugePages_Total 输出非0,则表示配置了内存大页。内存大页的大小 为 HugePages_Total*Hugepagesize, 您需确认 hugepage 是否为其他恶意程序配置。若确认已不需要内存大页,可通过注释 /etc/sysctl.conf 文件中的 vm.nr_hugepage 配置项,再执行 sysctl -p 命令取消内存大页。