У нас есть приложение на базе Java Java, работающее на JBoss с разрешенным максимальным размером кучи около 1,2 ГБ (общая физическая память машины составляет 2 ГБ). В какой-то момент приложение перестает отвечать на запросы (для клиентов) в течение нескольких минут. После некоторого анализа выяснилось, что виновником является полный GC. Здесь выдержка из подробного журнала GC:
<p> 74477,402: [Полный GC [PSYoungGen: 3648K- > 0K (332160K)] [PSOldGen: 778476K- > 589497K (819200K)] 782124K- > 589497K (1151360K) [PSPermGen: 102671K- > 102671K (171328K)], 646.1546860 secs] [ Times: user = 3.84 sys = 3.72, real = 646.17 secs]Я не понимаю, насколько возможно, что реальное время, потраченное на Full GC, составляет около 11 минут (646 секунд), а пользователь + время sys всего 7,5 секунд. 7.5 секунд звучат для меня гораздо более логичное время, потраченное на очистку и 200 МБ от старого поколения. Где все другое время?
Большое спасибо.