在Linux机器上增加堆大小
我在Ubuntu桌面机器上工作,我想增加Java的堆大小。 RAM为16GB和当前最大堆大小为3GB在Linux机器上增加堆大小
我查了这个帖子后Increasing Tomcat Heap Size
不多发现约Ubuntu的,所以我想这个命令:
java -Xmx10000m -X2000m -XshowSettings:all
,其结果是:
Min Heap Size: 1.95G
Max Heap Size: 9.77G
然后sudo gedit /etc/tomcat7/default
并且改变了这种油布到:
JAVA_OPTS="-Djava.awt.headless=true -Xmx10000m -XX:MaxPermSize=2000m"
但后来我用重新启动机器的检查,最大尺寸:
java -XshowSettings:all
,这表明:
Max Heap Size (Estimated): 3.80GB
我想利用我得到的高RAM(16 GB)。还有什么我可以做的吗?
您已更改Tomcat配置并希望所有JVM实例以某种方式获取这些设置?这不是它的工作方式,该设置将仅用于启动Tomcat使用的JVM,而不是在shell中启动。
查看here永久更改堆大小。
谢谢。我读过最好将'Xmx'和'Xms'设置为相同的值。但我想知道'MaxPermSize'。如果'Xmx'和'Xms'是12 GB。总RAM是16 GB。 MaxPermSize的最佳价值是什么? – Shadin 2014-09-02 07:40:48
没有最佳的堆设置。全部取决于您的应用程序。不要试图尽可能多地分配堆,因为这可能导致长时间GC触发的暂停。 Google for Java堆指南。 MaxPermSize也一样 - 你可以在这里阅读更多关于它的信息 - http://*.com/questions/12114174/what-does-xxmaxpermsize-do。 – 2014-09-02 07:49:29
您可以使用下面的代码片段:
java -XX:+PrintFlagsFinal -Xms512m -Xmx1024m -Xss512k -XX:PermSize=64m -XX:MaxPermSize=128m
-version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
在我的电脑我得到以下的输出:
uintx InitialHeapSize := 536870912 {product}
uintx MaxHeapSize := 1073741824 {product}
uintx PermSize := 67108864 {pd product}
uintx MaxPermSize := 134217728 {pd product}
intx ThreadStackSize := 512 {pd product}
@BackSlash是的,它显示了16 GB,当我输入'免费-m'和OSType是64位 – Shadin 2014-09-01 10:36:47