You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
По нашему опыту эксплуатации периодически случаются ситуации, когда сервер среднего слоя не падает (краш jvm или всей машины, не-старт томката), а зависает или сильно тормозит.
Это могут быть:
дедлоки по разным причинам
состояние на старте сервера, когда томкат уже слушает http порт, но все запросы подвисают
OOM-ситуация. Например код или отчёт загружают много данных в память. Сборщик мусора начинает бешено молотить, постоянно останавливает все потоки JVM на длительную сборку мусора. В таком полуживом состоянии сервер может провести много минут, пока не сработает "GC overhead limit exceeded".
Проблема в том, что ни один из клиентов (клиентские слои и десктоп клиенты) не переключаются на другой узел, т.к. нет IOException, просто сервер отвечает на запросы необычно медленно.
Все пользователи страдают от тормозов, не имея возможности переключиться на другой узел. Нет возможности провести детальную диагностику JVM (thread dumps, heap dumps и т.п.), т.к. JVM нужно перезапустить как можно быстрее, дабы с узла ушли клиенты.
Я не уверен точно, как нужно делать обнаружение подобных зависаний, но может быть сработает какой-то фоновый шедулер, который периодически выдает очень простой запрос с таймаутом на текущий узел сервера.
Если таймаут истекает, то есть смысл переключиться на другой узел кластера (с какими-то порогами на повторное переключение).
По нашему опыту эксплуатации периодически случаются ситуации, когда сервер среднего слоя не падает (краш jvm или всей машины, не-старт томката), а зависает или сильно тормозит.
Это могут быть:
Проблема в том, что ни один из клиентов (клиентские слои и десктоп клиенты) не переключаются на другой узел, т.к. нет IOException, просто сервер отвечает на запросы необычно медленно.
Все пользователи страдают от тормозов, не имея возможности переключиться на другой узел. Нет возможности провести детальную диагностику JVM (thread dumps, heap dumps и т.п.), т.к. JVM нужно перезапустить как можно быстрее, дабы с узла ушли клиенты.
Я не уверен точно, как нужно делать обнаружение подобных зависаний, но может быть сработает какой-то фоновый шедулер, который периодически выдает очень простой запрос с таймаутом на текущий узел сервера.
Если таймаут истекает, то есть смысл переключиться на другой узел кластера (с какими-то порогами на повторное переключение).
Original issue: https://youtrack.haulmont.com/issue/PL-5626
The text was updated successfully, but these errors were encountered: