Вопрос

Я пишу приложение Java, которое работает в Tomcat, на многоэлементном оборудовании. Приложение выполняет алгоритм и возвращает ответ на пользователя. Проблема в том, что даже когда я выполняю два запроса одновременно, процесс Tomcat использует не более одного CPU Core.
Насколько я понимаю, каждый запрос в Tomcat выполняется в отдельной резьбе, а JVM должен выполнять каждую нить на отдельном ядре CPU.

Что может быть проблемой, которая связана с JVM или TOMCAT, чтобы использовать не более одного ядра?

Заранее спасибо.

Это было полезно?

Решение

Вы уверены, что создаются два потока. Вы можете просто распечатать название потока как быстрый тест.

Что произойдет, если вы запустите алгоритм в автономном приложении?

Другие советы

Все управление процессорами будут позаботиться о самом сервере. Не обязательно, что если вы пройдете два запроса, он должен использовать два процессора.

Вы выполняете какие-либо синхронизированные блоки / методы, которые будут заставить последовательное выполнение? Конфигурация разъема Tomcat в Server.xml управляет пулом потока запроса - но по умолчанию - 200 потоков, IIRC.

Вот процедура для балансировки нагрузки в Tomcat http://tomcat.apache.org/tomcat-5.5-doc/balancer-howto.html.

Я думаю, что это будет работать с Tomcat 6, когда они упомянули балансировщик WebApp поставляется с Tomcat 5.0 и позже.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top