|
|
|
Почему "упал" мой java-сайт? (есть дамп потоков)
|
|||
|---|---|---|---|
|
#18+
Всем здравствуйте! Ситуация такая. Сегодня ночью упал наш java-сайт. Симптомы были такие: при попытке запросить любую страницу tomcat очень долго пытался ее загрузить, и страницу так и не отдавал. В логах (catalina.out и прочие) ничего при этом не писалось. Сделал дамп потоков в это время: 214 разных потоков ждали лок <0x00002aaab9e0c260> в состоянии BLOCKED . Поток, который забрал этот лок залип в состоянии RUNNABLE на операции java.util.LinkedHashMap.createEntry . Вот этот поток: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Здесь видно, что OldGen и PermGen использованы на 99%, при этом в лог так и не выдавалось никаких ошибок (ни OutOfMemory, ни PermGen space error, ничего). Полный стекдамп приложен в аттачменте Используемые технологии: Код: plaintext 1. 2. Помогите пожалуйста разобраться, что произошло! И как устранить, чтобы больше это не повторялось... Заранее большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 11:29:20 |
|
||
|
Почему "упал" мой java-сайт? (есть дамп потоков)
|
|||
|---|---|---|---|
|
#18+
типичный дедлок, по-моему, при конкурентном заполнении мапы... попробуй использовать мапу из пакета concurent или сделай синхронизацию потоков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 12:04:00 |
|
||
|
Почему "упал" мой java-сайт? (есть дамп потоков)
|
|||
|---|---|---|---|
|
#18+
Vetal Здесь видно, что OldGen и PermGen использованы на 99%, при этом в лог так и не выдавалось никаких ошибок (ни OutOfMemory, ни PermGen space error, ничего). Это не значит что OOM не было. имхо, на 99% он был. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 12:16:09 |
|
||
|
Почему "упал" мой java-сайт? (есть дамп потоков)
|
|||
|---|---|---|---|
|
#18+
y3uтипичный дедлок, по-моему, при конкурентном заполнении мапы... попробуй использовать мапу из пакета concurent или сделай синхронизацию потоков Я не понимаю, почему. Вот кусок дампа потоков: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Вот код метода java.util.LinkedHashMap.createEntry: Код: plaintext 1. 2. 3. 4. 5. 6. Там же не на чем зациклиться!! Я не понимаю, почему поток не может выйти из этого метода? Смотрим теперь кусок кода метода net.sf.ehcache.Cache.put(Cache.java:569): Код: plaintext 1. 2. Как мы видим, верхушка стека находится как раз внутри блока synchronized... В общем, непонятно, почему поток не вышел из метода createEntry. Судя по информации о heap, это произошло в момент, когда памяти свободной уже не было. Могли лы поток в метода createEntry залипнуть из-за того, что закончилась память? А что касается переписывания с использованием concurrent... Как видно из стека, глюк находится в системных файлах различных технологий, которым мы используем. Исходя из этого, ничего мы переписывать не можем... Помогите, пожалуйста, хотя-бы понять, почему поток залип в методе java.util.LinkedHashMap.createEntry? Могло ли это быть из-за того, что память закончилась? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 15:12:58 |
|
||
|
Почему "упал" мой java-сайт? (есть дамп потоков)
|
|||
|---|---|---|---|
|
#18+
Timm Vetal Здесь видно, что OldGen и PermGen использованы на 99%, при этом в лог так и не выдавалось никаких ошибок (ни OutOfMemory, ни PermGen space error, ничего). Это не значит что OOM не было. имхо, на 99% он был. И именно из за этого мог залипунть поток таким образом, как он залипнул в стек-дампе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 15:13:37 |
|
||
|
Почему "упал" мой java-сайт? (есть дамп потоков)
|
|||
|---|---|---|---|
|
#18+
TimmЭто не значит что OOM не было Кстати, а каким образом может такое быть, что реально утечка памяти, а никаких Exception в лог не пишется?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 15:14:21 |
|
||
|
Почему "упал" мой java-сайт? (есть дамп потоков)
|
|||
|---|---|---|---|
|
#18+
Vetal TimmЭто не значит что OOM не было Кстати, а каким образом может такое быть, что реально утечка памяти, а никаких Exception в лог не пишется?? Да никаких дедлоков там быть не может. Сообщения о OOM может не попасть в лог к примеру, когда не хватает памяти на проброс эксепшна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 15:17:27 |
|
||
|
Почему "упал" мой java-сайт? (есть дамп потоков)
|
|||
|---|---|---|---|
|
#18+
Vetalглюк находится в системных файлах различных технологий, которым мы используем. Исходя из этого, ничего мы переписывать не можем.. - скажем прямо: кэш в Hibernate сожрал всю память и парализовал работу Tomcat :( - уменьшайте размер кэша или увеличивайте память доступную JVM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 15:25:29 |
|
||
|
Почему "упал" мой java-сайт? (есть дамп потоков)
|
|||
|---|---|---|---|
|
#18+
TimmСообщения о OOM может не попасть в лог к примеру, когда не хватает памяти на проброс эксепшна. Зато на дамп потоков вполне хватило :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 15:27:17 |
|
||
|
Почему "упал" мой java-сайт? (есть дамп потоков)
|
|||
|---|---|---|---|
|
#18+
Kachalov Vetalглюк находится в системных файлах различных технологий, которым мы используем. Исходя из этого, ничего мы переписывать не можем.. - скажем прямо: кэш в Hibernate сожрал всю память и парализовал работу Tomcat :( - уменьшайте размер кэша или увеличивайте память доступную JVM А с чего вы взяли, что виноват кеш в Hibernate?? С чего это видно? Если сложить все кеш регионы - получается 10 430 ячеек. Оперативной памяти под сервер выделено 4Гб. Думаете, такой небольшой объем ячеек может положить весь сервер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 12:49:50 |
|
||
|
Почему "упал" мой java-сайт? (есть дамп потоков)
|
|||
|---|---|---|---|
|
#18+
- как "ячейки" соотносятся с байтами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2007, 02:10:01 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=59&tid=2145339]: |
0ms |
get settings: |
18ms |
get forum list: |
23ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
47ms |
get topic data: |
18ms |
get forum data: |
5ms |
get page messages: |
85ms |
get tp. blocked users: |
3ms |
| others: | 322ms |
| total: | 535ms |

| 0 / 0 |
