JBOSS Зависает при достижении лимита maxThreads - PullRequest
2 голосов
/ 13 марта 2012

У меня есть приложение Struts 1.3, работающее в JBOSS AS 5.1. Мы установили 2000 HTTP-потоков в файле server.xml для коннектора HTTP и выделили около 2 ГБ ОЗУ в куче JVM для JBOSS в файле run.conf. Система имеет 4 ГБ ОЗУ, а оставшаяся память используется другими приложениями.

Всякий раз, когда моя система получает более 2000 одновременных запросов, Jboss просто зависает и перестает работать. Я не получаю исключений на консоли или нехватки памяти любого рода, это просто зависает.

Как мне решить эту проблему? Должен ли я поставить mod_cluster или что-то перед JBOSS? Или я должен просто выделить больше потоков для соединителя, если так, как я могу выяснить, какое соотношение использовать между памятью и maxThreads в соединителе HTTP?

1 Ответ

5 голосов
/ 13 марта 2012

2000 - очень большое число.Если вам действительно нужно обрабатывать 2000 одновременных запросов, вам нужно будет настроить несколько экземпляров и равномерно распределить нагрузку между экземплярами.Вы можете настроить балансировщик нагрузки или apache + mod_jk перед jboss.

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

...