板坯使用率极高?

use*_*948 6 memory cache

在具有 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 的 apache2 网络服务器。我个人怀疑它可能是 mod_rewrite 检查文件是否存在或其他东西。

完整内核版本:

Linux #1 SMP Tue Mar 18 14:48:24 CET 2014 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

安装的软件:pastebin
ps aux 的输出:pastebin

# strace -fc -e trace=access curl 'https://www.google.com' > /dev/null
Process 7342 attached
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   259  100   259    0     0    903      0 --:--:-- --:--:-- --:--:--   905
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00    0.000048           0      7877      7872 access
------ ----------- ----------- --------- --------- ----------------
100.00    0.000048                  7877      7872 total
Run Code Online (Sandbox Code Playgroud)

Joh*_*ene 1

我总是用来top寻找最大的 VSIZE/VSS 或 RSS 进程,

然后我进入 /proc/<.PID>/ 子目录。

并检查该smaps文件中最大的违规对象文件、套接字,通常还包括库。