【发布时间】:2012-03-27 10:42:23
【问题描述】:
#!/bin/bash
#
module add apps/java/1.6
java -Xmx1024m HelloWorld
我需要设置-XmxYm,其中Y 应该是系统上可用内存的95%,单位为Mb。
【问题讨论】:
-
“可用内存”的定义是什么?您是指操作系统可用的 RAM 吗?你的意思是进程可用的虚拟内存?还是什么?
-
@DavidSchwartz 表示 Java 可以使用且不会导致系统崩溃的所有内存。我认为这是操作系统可用的 RAM。
-
请注意,您不能总是为 JVM 分配尽可能多的内存。一些提示:stackoverflow.com/questions/171205/…、stackoverflow.com/questions/1190837/…、stackoverflow.com/questions/3030263/…
-
堆只是 Java 使用的内存的一部分。在任何情况下,您都希望它是操作系统未使用的内存和合理大小的磁盘缓存。如果您保留默认选项,它将使用 1/4 的内存(使用服务器 JVM)
-
@bizso09:不,因为如果系统有可用的交换空间,进程可以使用比可用 RAM 更多的内存。如果问题不是导致系统崩溃,您还需要考虑交换/分页。