Tomcat 6 ответ написания - PullRequest
       5

Tomcat 6 ответ написания

0 голосов
/ 27 октября 2011

Я наблюдаю странное поведение моего сервера Tomcat, кажется, что Tomcat недостаточно быстро пишет ответ клиенту.Вот что я вижу:

При одновременном запуске 200 запросов на моем сервере Tomcat журналы моего приложения показывают, что doGet () моего сервлета завершает обработку запроса примерно за 500 мс.Однако на стороне клиента среднее время ответа составляет около 30 секунд (что означает, что клиент начинает видеть ответ от tomcat через 30 секунд)!

Кто-нибудь имеет представление о том, как происходит такая большая задержка между окончанием времени процесса моего сервлета и временем, когда клиент получает ответ?

Мой сервер размещен на Rackspace VM.

1 Ответ

0 голосов
/ 29 октября 2011

Нашли виновника.Я заметил, что хост-сервер использует ненормально высокую загрузку ЦП даже для нескольких запросов, поэтому я подключил JConsole к Tomcat и обнаружил, что все мои рабочие потоки имеют высокий уровень блокировки ... и постоянно находятся в состоянии блокировки.Глядя на трассировку стека, блокировка произошла во время создания экземпляра JAXBContext.Копайте дальше, приложение создает JAXBContext, который является относительно дорогим, для каждого запроса.

Итак, в общем, проблема была вызвана созданием экземпляра JAXBContext для каждого потока.Решение заключалось в том, чтобы JAXBContext создавался один раз для каждого приложения.

...