Графический интерфейс приложения на Tomcat с большой нагрузкой не отвечает

У нас есть серверное веб-приложение, установленное на tomcat 8, у которого есть часть графического интерфейса, написанная на Apache wicket MVC (версия 1.4) - графический интерфейс калитки не отвечает в тот момент, когда сервер начинает выполнять тяжелую обработку.

В среднем загрузка ЦП составляет около 85%. Страница может обновиться через минуту и ​​может никогда не вернуться.

Как я могу дать калитке более высокий приоритет, либо в коде, либо в настройках сервера, чтобы заставить ее реагировать при высокой нагрузке? Я был бы не против, если бы он украл CPU из внутренних потоков.

Некоторое пояснение: все приложение представляет собой единую войну, поэтому калитка и «бэкэнд» потоки выполняются в одном jvm под одним и тем же веб-приложением. Страница калитки, похоже, не нуждается в каких-либо важных занятых объектах, которые используют другие потоки.

0
задан 11 May 2016 в 18:04
1 ответ

Если два приложения сильно объединены, как в викет-части, блокировка (синхронно)вызовы части обработки, единственное, что вы можете сделать, это выяснить, почему обрабатывающее приложение блокируется, и попытаться его оптимизировать.

Если вместо этого вы можете разделить их, то самым чистым решением было бы сначала разделить веб-приложения на два разных экземпляра tomcat, а если у вас его нет, вы можете поставить перед ним обратный прокси, чтобы изменение было прозрачным.

Таким образом, у вас будет еще больше информации о том, какое из приложений использует больше ЦП, или вы можете дать больший приоритет тому, что вы желание, например. на linux nice / renice.

Еще одно преимущество состоит в том, что количество потоков, которые может обрабатывать tomcat, фиксировано, поэтому, помещая оба приложения в один и тот же экземпляр, одно приложение может использовать все потоки, блокирующие другое.

Надеюсь, это поможет

0
ответ дан 24 November 2019 в 06:34

Теги

Похожие вопросы