在具有 32GB RAM 内存的 Centos 7 服务器上,我正在运行一些程序,即 MySQL、Apache2、PHP。最近我想验证剩余的内存量,因为我计划安装更多的程序,令我惊讶的是内存量很低!经过调查,我发现 Slab 使用了超过 20GB。2 天前,我删除了缓存,因此平板使用率下降到 0 并再次缓慢增加。在使用程序监视它时,我注意到使用率呈线性增长。在过去 24 小时内,它增加了约 5200MB(60 小时内总共增加了 13GB)。磁盘上的总数据在 40GB 以下。'find /' 的输出只有几 MB。如果 dentries 被缓存,似乎有很多东西?
我有帖子说 curl 附带的 NSS 是原因。我检查了那里安装的 NSS 版本,它是一个应该应用修复程序的版本。
我还发现建议使用 vfs_cache_pressure 的帖子,但是增加它似乎并没有阻止使用率上升到极高的值。
我想知道对于小于 50GB 的小磁盘,身份的正常内存量是多少?我怎样才能找到来源以及如何解决这个问题?
相关图片:
slabtop 的屏幕截图:这里
slab 可回收和缓存内存的图表:这里
编辑:
# sysctl -n vm.vfs_cache_pressure
10000
Run Code Online (Sandbox Code Playgroud)
(以前是 100,我增加了 x100 但内存仍然增加相同的数量)
# find / -type d -size +10M -ls
#
Run Code Online (Sandbox Code Playgroud)
(无输出)
至于 cronjobs,除了每日日志轮换之外,还有一个脚本可以建立一些 tcp 连接来获取数据并将其存储在数据库中(原始套接字,没有 curl 或任何东西)。除了那个 cronjob,还有 2 个每周运行一次的备份 cronjob。唯一应该能够导致 I/O 的是安装了 SMF 的 …