我在拥有 32GB RAM 和 16 核 CPU 的服务器上运行两个基于 Java 的应用程序。除此之外,我只有 MySQL 社区服务器 5.6.16。Java 应用程序分配了 10 GB 的总内存。两个应用程序的 Xmx 和 Xms 相同。
现在的问题是,在一段时间内(大约 3-4 小时),Linux 将整个可用内存分配给缓存,Java 应用程序的速度急剧下降。一旦我清除缓存,应用程序就会开始正常响应。
以下是 free 命令的输出:
$ free -m
total used free shared buffers cached
Mem: 32095 31767 328 0 1380 11245
-/+ buffers/cache: 19141 12953
Swap: 29999 3918 26081
两个 Java 应用程序的堆+非堆内存利用率在任何时候都不会超过 75%。
这背后的原因是什么?这是 Linux 内存管理问题吗?
提前致谢