heap
def new generation total 157248k, used 19646k [0x04b00000, 0x0f5a0000, 0x0f5a0000)
eden space 139776k, 9% used [0x04b00000, 0x05788208, 0x0d380000)
from space 17472k, 38% used [0x0d380000, 0x0da27790, 0x0e490000)
to space 17472k, 0% used [0x0e490000, 0x0e490000, 0x0f5a0000)
tenured generation total 349568k, used 19156k [0x0f5a0000, 0x24b00000, 0x24b00000)
the space 349568k, 5% used [0x0f5a0000, 0x108553c8, 0x10855400, 0x24b00000)
compacting perm gen total 65536k, used 40825k [0x24b00000, 0x28b00000, 0x2ab00000)
the space 65536k, 62% used [0x24b00000, 0x272de638, 0x272de800, 0x28b00000)
no shared spaces configured.
舊生代的的使用率為5%,而新生代的的使用率特別是from這一塊已經是38%,我推測是物件由於eden晉公升到from導致哦那關鍵不足的時候導致的gc(我還沒有找到監控eden和from,to的記憶體變化的方法,jconsole的話是可以看到,但是前提是要先讓程式啟動找到pid,,這樣一來又來不急開jconsole,很麻煩,所以暫時放棄),看看新生代的空間為154m,先將其設定為200m,即增加引數-xmn256m,果然有效果,看看日誌
gc3.log
4.367: [gc 4.368: [defnew: 209792k->21157k(235968k), 0.0987968 secs] 209792k->21157k(498112k), 0.0989220 secs] [times: user=0.08 sys=0.01, real=0.10 secs]
heap
def new generation total 235968k, used 115536k [0x10010000, 0x20010000, 0x20010000)
eden space 209792k, 44% used [0x10010000, 0x15c3ac40, 0x1ccf0000)
from space 26176k, 80% used [0x1e680000, 0x1fb296e8, 0x20010000)
to space 26176k, 0% used [0x1ccf0000, 0x1ccf0000, 0x1e680000)
tenured generation total 262144k, used 0k [0x20010000, 0x30010000, 0x30010000)
the space 262144k, 0% used [0x20010000, 0x20010000, 0x20010200, 0x30010000)
compacting perm gen total 65536k, used 40839k [0x30010000, 0x34010000, 0x36010000)
the space 65536k, 62% used [0x30010000, 0x327f1fa0, 0x327f2000, 0x34010000)
no shared spaces configured.
這次只有一次gc,新生代的使用率得到了提高,舊生代貌似沒有被使用,效果不錯,但是這次的調優對啟動速度的影響沒有昨天那麼明顯。
接下來需要優化的是看看eclipse在持續執行過程中的gc情況並加以優化,這樣需要開啟一些專案,看eclipse在初始化專案的時候會做什麼樣的gc,今天要回家,估計結果一時半出不來,等結果出來了我再整理一下發出來。
Spark效能調優 JVM調優
通過一張圖讓你明白以下四個問題 1.jvm gc機制,堆記憶體的組成 2.spark的調優為什麼會和jvm的調優會有關聯?因為scala也是基於jvm執行的語言 3.spark中oom產生的原因 4.如何在jvm這個層面上來對spark進行調優 補充 spark程式執行時 jvm堆記憶體分配比例 r...
JVM效能調優
gc 優化的兩個目標 將進入老年代的物件數量降到最低 減少 full gc 的執行時間 gc 優化的基本原則是 將不同的 gc 引數應用到兩個及以上的伺服器上然後比較它們的效能,然後將那些被證明可以提高效能或減少 gc 執行時間的引數應用於最終的工作伺服器上。gc 優化需要考慮的 jvm 引數 型別...
JVM調優總結
堆大小設定 jvm 中最大堆大小有三方面限制 相關作業系統的資料模型 32 bt還是64 bit 限制 系統的可用虛擬記憶體限制 系統的可用物理記憶體限制。32位系統下,一般限制在1.5g 2g 64為作業系統對記憶體無限制。我在windows server 2003 系統,3.5g物理記憶體,jd...