我知道,进程可以根据需要使用磁盘缓存作为可用内存。在我的 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