2014-09-01 109 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}