проблема многопоточности tomcat - PullRequest
5 голосов
/ 18 мая 2010

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

В чем может быть проблема, ограничивающая JVM или Tomcat использовать не более одного ядра?

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

Ответы [ 4 ]

0 голосов
/ 21 мая 2010

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

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

0 голосов
/ 18 мая 2010

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

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

0 голосов
/ 18 мая 2010

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

0 голосов
/ 18 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...