代码之家  ›  专栏  ›  技术社区  ›  Bidyut

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

  •  2
  • Bidyut  · 技术社区  · 7 年前

    应用程序是用Java编写的,执行了大量的I/O操作。在适当的时候,运行应用程序时,缓存消耗将增加。虽然 free -h 将显示足够的 available memory ,但应用程序将因引发异常而崩溃 Java Heap Memory Out of Space Exception

    为了解决这个问题,我执行clearcache命令来释放缓存。 我需要一些关于问题是由缓存引起的,还是运行应用程序时出现了问题的指导,因为清除缓存不会让异常发生。缓存会占用JVM内存吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Peter Lawrey    7 年前

    Linux总是会根据需要释放缓存,您不必显式地这样做。

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

    我也愿意

    • 减小堆大小。
    • 预先触摸所有的空间,以确保它们被急切地分配。