为什么 64 位计算机无法使用整个可用内存作为磁盘缓存。面临磁盘缓存突然下降

为什么 64 位计算机无法使用整个可用内存作为磁盘缓存。面临磁盘缓存突然下降

我知道,进程可以根据需要使用磁盘缓存作为可用内存。在我的 32 位机器上,我可以看到磁盘缓存可以使用所有可用内存。但在 64 位机器上却不行。在 64 位机器上,我有 252GB RAM(free 命令)、24 个核心和 90 个 jbod 磁盘。运行 45 个带有 -Xmx2000m 的 java 服务器以从磁盘读取/写入小文件。

每 4/8/10/13 小时,我也会遇到磁盘缓存突然下降的情况。我可以看到磁盘缓存下降后,接下来的 5-6 小时磁盘缓存达到 ~110 GB,但之后的 4-5 小时它不会超过这个 ~110GB 的限制(但仍然有 ~80GB 可用),然后突然整个磁盘缓存下降。

我不知道这是怎么回事。请给我一些建议:是否有任何系统配置可以解决这个问题,或者是否存在 jbod/内存问题,如果是,那么如何解决。

使用 Linux 操作系统和 64 位 JVM。

free -g
             total       used       free     shared    buffers     cached
Mem:           252        162         89          0         42         80
-/+ buffers/cache:         39        212
Swap:            1          0          1

相关内容