У нас есть приложение на основе Web Java, работающее на JBoss с максимально допустимым размером кучи около 1,2 ГБ (общий объем физической памяти компьютера составляет 2 ГБ). В какой-то момент приложение перестает отвечать (клиентам) на несколько минут. После некоторого анализа мы обнаружили, что виновником является Full GC. Вот выдержка из подробного журнала GC: * 1001 *
74477,402: [Полный ГХ [PSYoungGen: 3648K-> 0K (332160K)] [PSOldGen: 778476K-> 589497K (819200K)] 782124K-> 589497K (1151360K) [PSPermGen: 102671K681,67216646> 102676> 102676> 102676> 102676> 102676> 102676>> 102676606>> 102676166>> 102676326>> 102676606>> 102676686> 646326325 (?)> 642: 642: 646 секунд] [ Время: пользователь = 3,84 сис = 3,72, реальное = 646,17 с ]
Я не понимаю, как это возможно, что реальное время , потраченное на Full GC, составляет около 11 минут (646 секунд), тогда как user + sys times просто 7,5 секунд. 7,5 секунд кажутся мне гораздо более логичным временем, чтобы потратить на очистку <200 МБ от старого поколения. Куда уходит все остальное время? </p>
Большое спасибо.