2013-03-23 38 views
0

當我在tomcat上增加-Xms值時,內存使用率(來自free -m命令)不會相應地改變。下面的示例顯示,將其值增加200MB僅影響內存使用量〜85MBXms選項對內存使用量的影響

... usr/lib中/ JVM/JRE /斌/爪哇 - Xms128m -Xmx128m -XX:PermSize =128米-XX:MaxPermSize參數=128米...

$ free -m 
      total  used  free  shared buffers  cached 
Mem:   594  341  253   0   7  104 
-/+ buffers/cache:  229  365 
Swap:   0   0   0 

.../usr/lib目錄/ JVM/JRE /斌/ java的-Xms328m -Xmx328m -XX:PermSize =128米-XX:MaxPermSize參數=128米...

$ free -m 
      total  used  free  shared buffers  cached 
Mem:   594  426  167   0   7  104 
-/+ buffers/cache:  314  279 
Swap:   0   0 

可能是什麼原因?

+0

一個人不會簡單地告訴JVM使用多少內存,只能建議。 – 2013-03-24 11:39:13

+0

另外,爲什麼你不測量實際的java進程消耗多少內存? – 2013-03-24 11:41:33

回答

1

這是因爲我認爲Linux內核如何分配RAM。這是我可能有缺陷的理解,儘管你可以請求大量的RAM,但是直到虛擬內存子系統對它做了某些事情(即它實際上已經被寫入)之前,它可能不會被使用。

因此,您看到的差異是垃圾收集運行的閾值發生了變化,所以利用率略有不同。如果您開始在RAM中存儲更大的數據集,您會注意到更大的差異。

+0

(+1)聽起來正確。經常使用的一些術語是「保留」與「承諾」的內存。另請參閱此SO鏈接瞭解更多詳情:http://stackoverflow.com/questions/1098488/jvm-heap-parameters – SeKa 2013-03-24 04:51:04

相關問題