【问题标题】:CentOS memory availabilityCentOS 内存可用性
【发布时间】:2015-08-22 07:36:21
【问题描述】:

我的系统有 8GB 内存,我的系统是 CentOS 7。系统信息显示以下内存使用情况。

Memory Information
Total memory (RAM):  7.6 GB
  Free memory:  143.4 MB (+ 6.1 GB Caches)
  Free swap:  7.8 GB

这是否意味着可用内存只有 143.4MB,还是 143.4 + 6.1BG?为什么是缓存? 这是正常的吗?我问这个是因为我正在运行 Java 问题但收到了 OutOfMemory 异常。我在想我的操作系统是否有问题。

【问题讨论】:

    标签: java memory centos7


    【解决方案1】:

    您更有可能需要增加最大内存设置来运行 JVM。 JVM 将在它自己的内存使用限制下运行(取决于操作系统提供的限制)。

    例如

    $ java -Xmx2048m ...
    

    将以 2Gb 的最大内存设置运行 JVM。请参阅here 了解更多信息。

    如果您遇到OutOfMemoryException,那么您可能需要调整此设置。也有可能 JVM 无法从操作系统分配内存,或者您的程序存在内存泄漏,但设置 -Xmx 是解决此类问题的合理首选方法。请注意,以类似的方式设置 -Xms 将强制 JVM 在启动时分配内存,并且不仅可以作为优化,而且可以作为分配内存不足的早期警告。请参阅here 了解更多信息。

    【讨论】:

      【解决方案2】:

      我在想是不是我的操作系统有问题。

      不。问题出在您的程序中(它使用了太多内存或有内存泄漏)或您运行它的方式(堆太小)。 Brian 的回答解释并提供了一些解决方案。

      这是否意味着可用内存只有 143.4MB,还是 143.4 + 6.1BG?为什么是缓存?这是正常的吗?

      是的,这很正常。

      “空闲内存”是当前未用于其他任何用途的 RAM 页面,可以立即分发给需要它们的应用程序。

      “磁盘缓存”是当前保存副本文件系统磁盘块的 RAM 页面。它们用于使文件读取更快(更快)。它们算作空闲内存的原因是操作系统可以以几乎零成本回收它们。事实上,如果启动更多应用程序,您会发现磁盘缓存会自动减小。

      【讨论】:

        猜你喜欢
        • 2021-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-27
        • 2011-04-25
        相关资源
        最近更新 更多