Linux 服务器装有 JBoss,系统缓存每天都在增加

Linux 服务器装有 JBoss,系统缓存每天都在增加

我们在三台专用服务器上运行带有 3 个 JBoss 的 Apache Mod_proxy 集群。由于我们需要在这些 JBoss 服务器之间共享许多文件(我们的应用程序需要读取/写入的小对象文件),因此我们在 Apache 节点中使用 NFS 并将它们作为同一目录安装到每个 JBoss 节点中。

两个节点都安装了 RHEL 5.4 版本,并且位于同一个内联网中。每台服务器都有 8G RAM。

问题是我们的 Linux 缓存每分钟增加约 2-3M,在高负载日(约 100-150 个在线用户)服务器缓存每天将增加到约 3-4G。

运行这些干净的代码后:

sync
echo 3 > /proc/sys/vm/drop_caches

它将恢复到正常水平:

             total       used       free     shared    buffers     cached
Mem:       8173504     589772    7583732          0      87444      72100
-/+ buffers/cache:     430228    7743276
Swap:      5799928          0    5799928

我们想知道这些都是由于JBoss打开的文件没有关闭而导致的吗?

我们可以使用其他解决方案在服务器之间共享文件吗?

谢谢您的回复。

答案1

Linux 通常会使用所有可用内存。应用程序数据未使用的内存随后将被缓冲区和缓存使用,以加快对磁盘和硬件的访问。您所描述的似乎是正常行为。除非您更改swapiness内核的 vm 参数,否则缓存将变小以允许应用程序数据在需要时增长。Swapiness 是:

所以... swappiness 被导出到 /proc/sys/vm/swappiness,它是一个参数,用于设置内核在从页面缓存回收页面和换出进程内存之间的平衡。

您可以阅读更多相关信息这里。通常默认就可以了,并且如果您没有任何进程因为内存不足而被终止,那么缓存就无需担心。

相关内容