小编Wol*_*gel的帖子

异常高的 dentry 缓存使用率

问题

几天前,一台内核为 2.6.32 和 128 GB 物理 RAM 的 CentOS 机器遇到了麻烦。负责的系统管理员告诉我,PHP-FPM 应用程序由于交换而不再及时响应请求,并且看到free几乎没有剩余内存,他选择重新启动机器。

我知道空闲内存在 Linux 上可能是一个令人困惑的概念,重启可能是错误的做法。但是,上述管理员指责 PHP 应用程序(我负责)并拒绝进一步调查。

我自己可以发现的是:

  • 在重新启动之前,可用内存(包括缓冲区和缓存)只有几百 MB。
  • 在重启之前,/proc/meminfo报告了大约 90 GB 的 Slab 内存使用量(是的,GB)。
  • 重新启动后,可用内存为 119 GB,在一个小时内下降到 100 GB 左右,因为 PHP-FPM 工作人员(其中约 600 个)恢复生机,每个人在顶部的 RES 列(几个月来一直这样,考虑到 PHP 应用程序的性质,这是完全合理的)。进程列表中没有其他东西消耗了异常或值得注意的 RAM 量。
  • 重启后,Slab内存在300MB左右

如果从那时起一直在监视系统,最值得注意的是 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)

linux memory centos

34
推荐指数
3
解决办法
3万
查看次数

标签 统计

centos ×1

linux ×1

memory ×1