几天前,一台内核为 2.6.32 和 128 GB 物理 RAM 的 CentOS 机器遇到了麻烦。负责的系统管理员告诉我,PHP-FPM 应用程序由于交换而不再及时响应请求,并且看到free几乎没有剩余内存,他选择重新启动机器。
我知道空闲内存在 Linux 上可能是一个令人困惑的概念,重启可能是错误的做法。但是,上述管理员指责 PHP 应用程序(我负责)并拒绝进一步调查。
我自己可以发现的是:
/proc/meminfo报告了大约 90 GB 的 Slab 内存使用量(是的,GB)。如果从那时起一直在监视系统,最值得注意的是 Slab 内存以每天约 5 GB 的速度直线增加。报告的可用内存free和/proc/meminfo以相同的速度减少。Slab 目前为 46 GB。根据slabtop大部分用于dentry条目:
空闲内存:
free -m
total used free shared buffers cached
Mem: 129048 76435 52612 0 144 7675 …Run Code Online (Sandbox Code Playgroud)