我正在研究Java應用程序中的性能問題。我們已經縮小到定期非常昂貴的垃圾收集。該應用程序做非常頻繁的YoungGen垃圾收集(稍微多於每分鐘一次),但通常小於0.5秒。然而,在某些情況下,我們會遇到一兩個小時,其中收集時間高於20秒,在某些情況下高達160秒。分析gc日誌,除了時間長的情況之外,在這些情況下似乎有所不同的是在內核模式(系統時間的大值)中花費的時間的很大一部分。垃圾收集的哪些部分需要系統時間?
什麼原因導致在內核模式下花費時間?服務器運行Java 1.6.0_45,其中-Xms5704m -Xmx5704m
和-XX:+UseParallelOldGC
。
你的問題是關於什麼時候*一般*花費在內核模式?另外,您使用的是哪種JRE? – Chandranshu
@Chandranshu:是的,GC期間系統時間很長的原因。我們正在運行Oracle JRE。 – carlpett