我的系统有 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 将在其自身的内存使用限制下运行(受操作系统可用的限制)。
例如
$ java -Xmx2048m ...
将以最大内存设置 2Gb 运行 JVM。请参阅here了解更多信息。
如果您遇到 OutOfMemoryException
问题,那么您可能需要调整此设置。 JVM 也有可能无法从操作系统分配该内存,或者您的程序出现内存泄漏,但设置 -Xmx
是解决此类问题的第一个合理方法。请注意,以类似的方式设置 -Xms
将强制 JVM 在启动时分配内存,这不仅可以作为优化,而且还可以作为分配内存不足的早期警告。请参阅here了解更多信息。
关于java - CentOS 内存可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30698936/