在我們的一臺服務器中,垃圾收集花費了近三個小時的時間來嘗試降低(成功)1.2GB的堆內存。從1.4GB到200MB。GC爲降低1.2GB堆積了三個小時,可能是什麼原因?
在此期間,CPU使用率很高,幾乎達到80-100%。可能是什麼原因?假設沒有人對其進行任何更改,我們有4臺具有相同配置(JVM設置,服務器配置,硬件,網絡)的服務器,這可能是特定服務器運行3小時GC的原因。
對於每個GC活動,所有其他服務器只需要5到10分鐘。
請附上HP BAC圖形,以便您參考。顯示我想GC加入的時間,以及GC停止時的時間。
(斯蒂芬指出了更確鑿的結果)提供這些信息時,服務器管理員回來對我說:
- 的JVM的確切版本你 使用。 (標準Java SE 1.4.2)
- JVM選項。 (Coming)
- 的詳細信息的Web容器/服務器的基礎。 (Coming)
- 有關服務 的功能的信息。從 服務器/服務日誌文件任何相關線索的請求日誌(即將)
- 任何相關模式(即將)
- 的GC日誌中 事件的時間。 (如果您目前沒有啓用 GC日誌記錄,您可能需要 啓用它,等到問題 復發。)(即將)
我想,當他們說了動態內存分配的時間是無限的......(順便說一下,他們不是在開玩笑,這是什麼BAC代表什麼?我糊塗了一秒鐘,認爲它代表的東西無關,哈哈) – Mehrdad 2011-05-09 01:19:47
嗨Mehrdad,我認爲它代表商業活動中心。 – 2011-05-09 01:47:09
嗨Mehrdad,你的意思是「動態內存分配是無限的」,你的意思是重新分配?由於GC掃描.. thx。 – 2011-05-09 01:48:22