Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / tomcat периодически падает. Почему? (есть дамп потоков) / 3 сообщений из 3, страница 1 из 1
15.05.2007, 11:14:58
    #34525524
Vetal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tomcat периодически падает. Почему? (есть дамп потоков)
Здравствуйте!

Иногда (примерно раз в день-два) наш продуктовый сервер "падает". И вот уже несколько месяцев не могу понять почему. Ни одной записи ни в один лог сервер не пишет. На момент падения процессор не загружен.

Когда сервер упал пару дней назад, я сделал дам потоков (через kill -3). Дамп находится во вложенном файле.

Я написал утилиту, которая разбирает дамп, и смотрит, какие блокировки наиболее ожидаемые. Нашел, что есть 5 таких блокировок, которых ожидает более одного потока. Причем ожидают долго, потому что потоки растут несколько минут перед тем, как tomcat вообще перестанет отдавать страницы.

Одна из этих пяти блокировок ( 0x00002b58afb89630 ) нигде не лочится в дампе потоков (нету locked <0x00002b58afb89630> ), но 85 потоков ее ожидают. Как это может быть???

Другие 4 лока залочены потоками, которые "залипают" на примитивных операциях на длительное время. Например, этот поток сейчас находится в
java.util.HashMap.newKeyIterator, но 89 других потоков ждут этого лока (<0x00002b58afb85b1>) несколько минут:

автор"http-8080-Processor1533" daemon prio=1 tid=0x00002aaab2566160 nid=0x6acb runnable

[0x000000004c410000..0x000000004c412c20]
at java.util.HashMap.newKeyIterator(HashMap.java:889)
at java.util.HashMap$KeySet.iterator(HashMap.java:921)
at java.util.HashSet.iterator(HashSet.java:154)
at net.sf.ehcache.event.RegisteredEventListeners.notifyElementExpiry(RegisteredEventListeners.java:116)
at net.sf.ehcache.Cache.remove(Cache.java:1017)
at net.sf.ehcache.Cache.searchInMemoryStore(Cache.java:829)
at net.sf.ehcache.Cache.get(Cache.java:654)
- locked <0x00002b58afb85b18> (a net.sf.ehcache.Cache)
at org.hibernate.cache.EhCache.get(EhCache.java:75)
at org.hibernate.cache.StandardQueryCache.get(StandardQueryCache.java:96)
at org.hibernate.loader.Loader.getResultFromQueryCache(Loader.java:2086)
....................................
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)


Остальные 3 лока тоже залипли на примитивных операциях.

Вот что выдала моя утилита, которая анализирует количество вхождений waiting to lock <xxx> и waiting on <xxx> в лог.

авторwaiting to lock <xxx>::
<0x00002b58afb8bd18>: 1 times.
<0x00002b58afb9aa50>: 1 times.
<0x00002b58afb9c138>: 2 times.
<0x00002b58afb8b690>: 1 times.
<0x00002b597ae1ecf8>: 1 times.
<0x00002b58afb85b18>: 89 times.
<0x00002b58afb88548>: 1 times.
<0x00002b58afb96110>: 1 times.
<0x00002b58afb89630>: 85 times.
<0x00002b58afb8e5a0>: 1 times.
<0x00002b58afb98090>: 1 times.
<0x00002b58afbacd28>: 1 times.
<0x00002b58afb99380>: 1 times.
<0x00002b58afb9a0f8>: 1 times.
<0x00002b58afb90d48>: 1 times.
<0x00002b58a34127a8>: 4 times.
<0x00002b58b09c5138>: 29 times.
<0x00002b58afb91d18>: 1 times.

waiting on <xxx>::
<0x00002b58afbb0370>: 1 times.
<0x00002b58adae0ff8>: 1 times.
<0x00002b58adae0f48>: 1 times.
<0x00002b58adae0d38>: 1 times.
<0x00002b58afbb0518>: 1 times.
<0x00002b58adae0de8>: 1 times.
<0x00002b58af9a7ba0>: 1 times.
<0x00002b58adae0e98>: 1 times.
<0x00002b58afbaf898>: 1 times.
<0x00002b58b0930400>: 1 times.
<0x00002b58afbaff00>: 1 times.


Моя системная конфигурация:
Код: plaintext
1.
2.
jdk 1.5.0.11
tomcat 5.5.20
SuSe Linux 10.1

Как я могу решить эту проблему? Пожалуйста, помогите мне!

Спасибо!
...
Рейтинг: 0 / 0
15.05.2007, 13:23:31
    #34526095
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tomcat периодически падает. Почему? (есть дамп потоков)
Попробуйте совет из " Tomcat on Linux ". Может поможет (если поможет, пожалуйста напишите)
...
Рейтинг: 0 / 0
21.06.2007, 12:43:21
    #34610424
Vetal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
tomcat периодически падает. Почему? (есть дамп потоков)
KachalovПопробуйте совет из " Tomcat on Linux ". Может поможет (если поможет, пожалуйста напишите)
Перешли на java6. Этой проблемы нет, но есть другая.
Один из потоков залипает на примитивных операциях. При этом область памяти OldGen забита на 99 процентов. У меня есть подозрение, что это утечка памяти. Может ли быть утечка памяти, если в логах нигде не пишется OutOfMemoryError, HeapSpaceError и т.д.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / tomcat периодически падает. Почему? (есть дамп потоков) / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]