Производственная среда в последнее время стала очень низкой. Процессу процесса потребовалось 200%. Однако он продолжал работать. После перезагрузки службы он снова функционировал нормально. У меня есть несколько симптомов: Куча памяти оставшегося в живых оставалась пустой в течение длительного времени, а сбор мусора занимал около 20% времени процессора.
Параметры JVM:
X:+CMSParallelRemarkEnabled, -XX:+HeapDumpOnOutOfMemoryError, -XX:+UseConcMarkSweepGC, - XX:+UseParNewGC, -XX:HeapDumpPath=heapdump.hprof, -XX:MaxNewSize=700m, -XX:MaxPermSize=786m, -XX:NewSize=700m, -XX:ParallelGCThreads=8, -XX:SurvivorRatio=25, -Xms2048m, -Xmx2048m
Arch amd64
Dispatcher Apache Tomcat
Dispatcher Version 7.0.27
Framework java
Heap initial (MB) 2048.0
Heap max (MB) 2022.125
Java version 1.6.0_35
Log path /opt/newrelic/logs/newrelic_agent.log
OS Linux
Processors 8
System Memory 8177.964, 8178.0
Дополнительная информация в прилагаемой картинке Когда проблема возникла в не-куче, используемый кеш-код и используемый cms perm gen упали до половины.
Я взял информацию из newrelic.
Вопрос в том, почему сервер начинает работать так медленно.
Иногда сервер останавливается полностью, но мы обнаружили, что есть проблема с PDFBox, при загрузке некоторого pdf файла и содержит некоторые шрифты, которые приводят к сбою JVM.
Дополнительная информация: Я наблюдал, что каждый день старый ген заполняется. Теперь я перезапускаю сервер ежедневно. После перезагрузки все приятное и денди, но старый ген заполняется до следующего дня, и сервер замедляется, пока не потребуется перезапуск.