CentOS 内存可用性
CentOS memory availability
我的系统有 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 异常。我在想是不是我的操作系统有问题。
您更有可能需要 运行 您的 JVM 增加最大内存设置。 JVM 将 运行 有它自己的内存使用限制(受 OS 可用的限制)。
例如
$ java -Xmx2048m ...
将运行 JVM 的最大内存设置为 2Gb。有关详细信息,请参阅 here。
如果您遇到 OutOfMemoryException
,那么您可能需要调整此设置。也有可能 JVM 无法从 OS 分配该内存,或者您的程序遭受内存泄漏,但设置 -Xmx
是解决此类问题的合理的首选方法。请注意,以类似方式设置 -Xms
将强制 JVM 在启动时分配内存,这不仅可以作为优化,还可以作为缺少分配内存的早期警告。有关详细信息,请参阅 here。
I am thinking whether there is any problem with my operating system.
没有。问题要么出在你的程序中(它使用了太多内存或有内存泄漏),要么出在你 运行 它的方式(堆太小)。布赖恩的回答解释了,并提供了一些解决方案。
Does this mean free memory is only 143.4MB, or 143.4 + 6.1BG? Why is it caches? Is this normal?
是的,很正常。
"free memory" 是当前未用于任何其他用途的 RAM 页,可以立即分发给需要它们的应用程序。
"disk cache" 是 RAM 页,当前持有 份 文件系统磁盘块。它们用于加快文件读取速度(快很多)。它们被算作空闲内存的原因是它们可以被 OS 以几乎零成本回收。事实上,如果启动更多应用程序,您会发现磁盘缓存的大小会自动减小。
我的系统有 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 异常。我在想是不是我的操作系统有问题。
您更有可能需要 运行 您的 JVM 增加最大内存设置。 JVM 将 运行 有它自己的内存使用限制(受 OS 可用的限制)。
例如
$ java -Xmx2048m ...
将运行 JVM 的最大内存设置为 2Gb。有关详细信息,请参阅 here。
如果您遇到 OutOfMemoryException
,那么您可能需要调整此设置。也有可能 JVM 无法从 OS 分配该内存,或者您的程序遭受内存泄漏,但设置 -Xmx
是解决此类问题的合理的首选方法。请注意,以类似方式设置 -Xms
将强制 JVM 在启动时分配内存,这不仅可以作为优化,还可以作为缺少分配内存的早期警告。有关详细信息,请参阅 here。
I am thinking whether there is any problem with my operating system.
没有。问题要么出在你的程序中(它使用了太多内存或有内存泄漏),要么出在你 运行 它的方式(堆太小)。布赖恩的回答解释了,并提供了一些解决方案。
Does this mean free memory is only 143.4MB, or 143.4 + 6.1BG? Why is it caches? Is this normal?
是的,很正常。
"free memory" 是当前未用于任何其他用途的 RAM 页,可以立即分发给需要它们的应用程序。
"disk cache" 是 RAM 页,当前持有 份 文件系统磁盘块。它们用于加快文件读取速度(快很多)。它们被算作空闲内存的原因是它们可以被 OS 以几乎零成本回收。事实上,如果启动更多应用程序,您会发现磁盘缓存的大小会自动减小。