Linux中的缓存是否会导致堆内存空间不足异常?

时间:2018-08-21 06:47:36

标签: linux caching jvm

在将特定应用程序部署到运行Ubuntu 16.04的Linux服务器时,我遇到了问题。

该应用程序是用Java编写的,并且执行许多I / O操作。在适当的时间范围内,在运行应用程序时,缓存消耗将增加。尽管free -h的输出将显示足够数量的available memory,但是应用程序将因抛出异常Java Heap Memory Out of Space Exception而崩溃。

要变通解决此问题,我执行clear cache命令以释放缓存。 我需要一些有关该问题是由缓存还是在运行应用程序时出现问题的指导,因为清除缓存不会让异常发生。缓存会占用JVM内存吗?

1 个答案:

答案 0 :(得分:0)

Linux将始终根据需要释放缓存,您永远不必显式地这样做。

  

应用程序将因抛出Java堆内存不足空间异常而崩溃

这意味着没有足够的交换空间来为JVM的堆分配内存。

我会

  • 增加交换空间
  • 减小堆大小。
  • 对所有空格进行预修饰,以确保它们被热切分配。