在将特定应用程序部署到运行Ubuntu 16.04的Linux服务器时,我遇到了问题。
该应用程序是用Java编写的,并且执行许多I / O操作。在适当的时间范围内,在运行应用程序时,缓存消耗将增加。尽管free -h
的输出将显示足够数量的available memory
,但是应用程序将因抛出异常Java Heap Memory Out of Space Exception
而崩溃。
要变通解决此问题,我执行clear cache命令以释放缓存。 我需要一些有关该问题是由缓存还是在运行应用程序时出现问题的指导,因为清除缓存不会让异常发生。缓存会占用JVM内存吗?
答案 0 :(得分:0)
Linux将始终根据需要释放缓存,您永远不必显式地这样做。
应用程序将因抛出Java堆内存不足空间异常而崩溃
这意味着没有足够的交换空间来为JVM的堆分配内存。
我会