2016-04-29 2 views
0

У меня есть webapp с использованием JDK1.6 и Tomcat 6. После того, как я установил webapp для использования apache-tomcat-8.0.33 и jdk1.8, я останавливаю Tomcat и запускаю его снова. Я вижу ошибку в файл журнала:Распределение Неисправность GC при перезапуске Tomcat 'apache-tomcat-8.0.33' с 'jdk 1.8'

Java HotSpot (TM) 64-разрядного сервера VM (25.5-b02) для Linux-amd64 (JRE 1.8.0_05-b13), построенный на 18 марта 2014 00: 29:27 на "java_re" с GCC 4.3.0 20080428 (Red Hat 4.3.0-8)
Память: 4к страницы, физическое 32960008k (1705688k бесплатно), своп 4095992k (9328k бесплатно)

CommandLine флаги: - XX: + CMSClassUnloadingEnabled -XX: InitialHeapSize = 1073741824 -XX: MaxHeapSize = 2097152000 -XX: + PrintGC -XX: + PrintGCTimeStamps -XX: + UseCompressedClassPointers -XX: + UseCompressedOops -XX: + UseParallelGC

0,299: [GC (Распределение F ailure) 512K-> 384K (1048064K), 0.0023630 сек]
0,462: [GC (Allocation Failure) 896K-> 664K (1048064K), 0.0024930 сек]

Что может быть проблема?

+0

Хотя это звучит тревожно, «Ошибка распределения» не обязательно является ошибкой. См. Http://stackoverflow.com/questions/28342736/java-gc-allocation-failure –

ответ

0

Обычно существует две причины для этих ошибок с tomcat. 1. Вы не выделяете достаточное количество памяти. 2. Вы выделяете слишком много памяти.

Я бы сделал ставку # 2.

Я мог бы быть неправильное это:

Memory: 4k page, physical 32960008k(1705688k free) 

Но это, кажется, указывает, что у вас есть 1.7GB доступной памяти. Сначала ваша куча занимает 1 ГБ, максимум 2 ГБ. Это не оставляет много доступной памяти.

Если вам действительно не нужно 1-кубовое пространство кучи, вы должны значительно уменьшить это значение, а также максимальный размер кучи.

Смежные вопросы