内存使用率为 18% 时溢出:内存去哪儿了?

内存使用率为 18% 时溢出:内存去哪儿了?

这与以下内容相关:内存使用率达到 72% 时溢出

看起来是同一个问题,但问题略有不同:我的内存去哪儿了?我的内存使用率为 18%,我的 OOM Killer 每 10 分钟就会杀死 mysqld 一次。

我收集到了一些信息:

1- 谢谢https://serverfault.com/a/619681/182343我发现 OOM Killer 的报告显示 DMA35 + DMA + 正常使用率为 96%(报告https://pastebin.com/UJUiSsSi)...所以有一个问题...

2- 来自 OOM Killer 的进程列表:https://pastebin.com/yYTD4QzW

3- free、top、htop 和其他工具显示内存使用率最高为 18%。以下是内存使用率排名(https://pastebin.com/DEDV1HWb

4- free -m 没有说明 RAM 问题:

              total        used        free      shared  buff/cache   
available
Mem:           6809         414         470         201        5924        5825

(我添加了一些交换,因为这个虚拟机上没有交换,但没有任何变化,没有使用交换)

5(编辑):感谢 Daniel Gordi,我清理了我的 buff/cachefree && sync && echo 3 > /proc/sys/vm/drop_caches && free并使用 手动运行了 oom-killer echo f > /proc/sysrq-trigger。而且,WTF,oom-killer 内存报告 (DMA35 + DMA + Normal) 显示我的预期内存使用率:18%!我一直以为这buff/cache意味着当操作系统需要时可用...

为何以及在哪里吃公羊?

(我真的希望能得到一些帮助,因为自从出现这个问题以来,我的生产服务器真的不稳定:(谢谢)

答案1

尝试使用 查找哪个进程使用了​​您的 RAM ps aux --sort -rss
对于服务器的输出,free -m大多数 RAM 都已缓冲/缓存。尝试使用以下命令清除缓存:
# free && sync && echo 3 > /proc/sys/vm/drop_caches && free

答案2

如果有人来这里寻求解决方案,这是一个更新:

我回滚了所有配置修改,并重新重启了服务器。2 个月以来,服务器运行良好,问题也消失了。

不确定这里发生了什么...

相关内容