2009-06-19 48 views
1

當試圖監視JVM的使用jstat的表現,我看到下面的線 -如何解釋jstat輸出中的這些*窄*尖峯?

Timestamp  PC  PU  OC   **OU**  YGC FGC FGCT  GCT 
     ... 
     283.7 132608.0 132304.8 1572864.0 **398734.1**  20  0 0.000 3.061 
     284.0 132608.0 132312.8 1572864.0 **1547795.2**  21  0 0.000 3.061 
     284.2 132608.0 132313.7 1572864.0 **417220.7**  21  0 0.000 3.418 
     ... 

有關JVM與伊甸園的2.5GB和最大4GB的運行。堆(-Xmn2560m -Xms4096m -Xmx4096m)

我不明白老舊使用中的這些尖峯是可能的嗎?

+0

你可以在這裏添加GC標誌嗎?如果您正在使用例如那些CMS不會顯示爲完整的GC,只有在發生故障 - 停止 - 全球GC時纔會顯示。 – 2009-08-31 09:36:17

回答

1

完全猜測,但它看起來像是發生了正確的,因爲年輕的gen做了一個GC,可以將新物體踢入老一代。這可能會在老一代造成更嚴重的壓縮傳球。

我猜測它複製了所有新的東西(使老一代更大),然後壓縮它......再次總猜測。

由於您正在從年輕一代轉移一堆東西,即使沒有完整的GC,也可能需要時間(和空間)來移動一些東西。

+0

同意你的程度!我覺得很難相信的部分是,當你說「...我猜它複製了所有新的東西(使舊的東西變大),然後壓縮它......」 - 這不是一箇舊的。 Gen. collection?如果是的話,爲什麼FGC計數不會增加? – g06lin 2009-06-20 20:01:14