У меня несколько рецидивирующий проблемы с приложением, использующим Tomcat 7.0.42 над Java 7 (Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
)
Проблема заключается в том, что без какой-либо видимой причины, и, видимо, наугад (очевидно, это не так, я думаю) куча Java заполняется до более чем 75%, и полная коллекция gargbage активируется.
Проблема в том, что после FullGC не выпущена ни одна из памяти, поэтому FullGC снова запускается. Это повторяется непрерывно, и поэтому CPU занят только выполнением GC, и почти никакой цикл CPU не передается ни на один другой поток, эффективно висящий на всех других потоках Tomcat.
Это происходит в промежутке не более 5 или 10 минут.
Это не похоже на загрузку системы, потому что это происходит также, когда у меня нет более двух потоков, активных и работающих.
Даже попытка получить кучу кучи или стакада затруднена из-за невосприимчивости к процессу Java.
я, во всяком случае, получить кучу гистограммы один раз, и, к сожалению, у меня нет полной гистограммы сейчас (моего плохой, я удалил файл без уведомления), но я держал эту информацию из чата:
1: 48504970 1552159040 org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller$2
2: 48506821 1164163704 java.util.concurrent.ConcurrentLinkedQueue$Node
Как вы можете видеть, есть больше, чем 48К экземпляры org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller$2
и такое же количество из java.util.concurrent.ConcurrentLinkedQueue$Node
экземпляров (это те которые holded первыми из них). Это составляет почти 2,5 ГБ, а куча памяти - 3 ГБ.
У меня есть свалка jstack thread в один момент, когда возникла эта проблема, что я не могу писать здесь, чтобы ограничить характер. Если кто-то хочет посмотреть на него, спросите, и я поделюсь им.
Единственное решение, которое у меня есть сейчас, - это уничтожение процессов Java Tomcat и запуск сервера снова.
В чем причина этого?
Даже время вхождения кажется случайным-иш. Иногда он появляется утром, иногда вечером. Однажды это было два раза в тот же день (с перезагрузкой Tomcat в середине).
Я запускаю Tomcat 7.0.42 на Java 7 (сборка 1.7.0_51-b13) по Linux (Linux version 3.10.0-123.9.2.el7.x86_64 ([email protected]) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC)) #1 SMP Tue Oct 28 18:05:26 UTC 2014
).
У меня также есть экземпляры JBoss Infinispan Cache и службы сообщений Apollo MQ, но я не думаю, что любой из них является виновником.
При возникновении проблемы укажите дамп вашего приложения. – benbenw
@benbenw, спасибо за ваш ответ! IHere - это ссылка на [файл] (https://drive.google.com/file/d/0B_dQKrkjWdg_MU51MjBESG9fVlE/view?usp=sharing) – medicenfranito