Установка maxThreads на 300 должна быть хорошей - здесь нет фиксированных правил. Это зависит от того, видите ли вы, что в каких-либо соединениях отказано.
Слишком большое увеличение приводит к высокому потреблению памяти, но известно, что рабочие Tomcats работают с 750 потоками. Смотрите и здесь. http://java-monitor.com/forum/showthread.php?t=235
Вы действительно получили SEVERE
ошибку? Я тестировал наш Tomcat 6.0.20, и он выдает сообщение INFO при пересечении maxThreads.
INFO: Maximum number of threads (200) created for connector with address null and port 8080
Он не отклоняет соединения, пока не будет пересечено значение acceptCount
. По умолчанию 100.
Из документации Tomcat http://tomcat.apache.org/tomcat-5.5-doc/config/http.html
Максимальная длина очереди для входящих запросов на соединение, когда используются все возможные потоки обработки запросов. Любые запросы, полученные при заполнении очереди, будут отклонены. Значение по умолчанию - 100.
Как это работает
1) По мере увеличения количества одновременных запросов потоки будут создаваться до настроенного максимума (значение атрибута maxThreads).
Итак, в вашем случае на этом этапе появится сообщение «Максимальное количество созданных потоков (200)». Однако запросы по-прежнему будут стоять в очереди на обслуживание.
2) Если поступает еще несколько одновременных запросов, они ставятся в очередь до настроенного максимума (значение атрибута acceptCount).
Таким образом, без сбоев можно принять до 300 запросов. (при условии, что ваш acceptCount по умолчанию равен 100)
3) При переходе через это число возникают ошибки «Отказано в соединении» до тех пор, пока не будут доступны ресурсы для их обработки.
Так что все будет в порядке, пока не дойдете до шага 3
person
JoseK
schedule
07.07.2010