2014-09-01 106 views
3

我在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)。还有什么我可以做的吗?

+0

@BackSlash是的,它显示了16 GB,当我输入'免费-m'和OSType是64位 – Shadin 2014-09-01 10:36:47

回答

5

您已更改Tomcat配置并希望所有JVM实例以某种方式获取这些设置?这不是它的工作方式,该设置将仅用于启动Tomcat使用的JVM,而不是在shell中启动。

查看here永久更改堆大小。

+0

谢谢。我读过最好将'Xmx'和'Xms'设置为相同的值。但我想知道'MaxPermSize'。如果'Xmx'和'Xms'是12 GB。总RAM是16 GB。 MaxPermSize的最佳价值是什么? – Shadin 2014-09-02 07:40:48

+1

没有最佳的堆设置。全部取决于您的应用程序。不要试图尽可能多地分配堆,因为这可能导致长时间GC触发的暂停。 Google for Java堆指南。 MaxPermSize也一样 - 你可以在这里阅读更多关于它的信息 - http://stackoverflow.com/questions/12114174/what-does-xxmaxpermsize-do。 – 2014-09-02 07:49:29

1

您可以使用下面的代码片段:

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}