powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Серверное Java-приложение виснет намертво
5 сообщений из 5, страница 1 из 1
Серверное Java-приложение виснет намертво
    #37946588
shainsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется серверное приложение, которое через сокеты слушает другие серверные приложения, а также своих клиентов.
Реализовано на стороннем фреймворке для гетерогенных систем (легковесный аналог Корбы).
Фреймворк использует ТредПул для обработки запросов, и ещё один ТредПул используется нами для реализации бизнес-логики.
Приложение работает на серваке с 16 ядрами, 4 гига отдано под кучу.
Где-то раз в неделю приложение наглухо виснет.
Треддамп получается снять только в forced-режиме (jstack -F), внутри него все потоки в состоянии BLOCKED.
После снятия тред-дампа в принудительном порядке приложение, как правило, "развисает".

Среда: Debian + Sun JDK 1.6.26

Были попытки воспроизвести баг на разработческих машинах (ОС и JDK те же), но даже в случае
ограничения размеров кучи и размеров ТредПула получали только тормоза или OutOfMemory,
при этом потоки не зависали.

В связи с этим 2 вопроса:
1. Глобальный - нет ли у коллективного разума подозрений, в чем может быть проблема?
2. Локальный - может ли кто-нибудь посоветовать профайлер, который бы с некоторой периодичностью делал текстовые отчеты
о состоянии памяти/потоков/GC? Графического интерфейса от продакшн-сервера я получить, увы, не могу, иначе юзал бы JVisualVM.

В аттаче - треддамп зависшего приложения.
...
Рейтинг: 0 / 0
Серверное Java-приложение виснет намертво
    #37946609
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу п.2. используйте GC логирование реализованое в самой JVM. -verbose:gc и несколько вспомогательных настроек. Это must have для любого нагруженого продакшн сервера.
...
Рейтинг: 0 / 0
Серверное Java-приложение виснет намертво
    #37946611
shainsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Логирование GC включили, но с тех пор пока что не было зависаний. :)
...
Рейтинг: 0 / 0
Серверное Java-приложение виснет намертво
    #37946639
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по вот этому, подозрение все же падает на stop-the-world-gc
Thread 4764: (state = BLOCKED)
- java.lang.AbstractStringBuilder.<init>(int) @bci=6, line=45 (Compiled frame)
- java.lang.StringBuilder.<init>() @bci=3, line=68 (Compiled frame)

А CPU отжирается при этом почти полностью?
...
Рейтинг: 0 / 0
Серверное Java-приложение виснет намертво
    #37946655
shainsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczСудя по вот этому, подозрение все же падает на stop-the-world-gc
Thread 4764: (state = BLOCKED)
- java.lang.AbstractStringBuilder.<init>(int) @bci=6, line=45 (Compiled frame)
- java.lang.StringBuilder.<init>() @bci=3, line=68 (Compiled frame)


У меня было такое же подозрение, тем более, что память где-то подтекает, и YoungGen медленно растет. Но на разработческой машине с кучей=8Мб (!) воспроизвести зависание мне не удалось, я просто получил OutOfMemory.

BlazkowiczА CPU отжирается при этом почти полностью?

3 ядра отжираются.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Серверное Java-приложение виснет намертво
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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