Tomcat не оправляется от лишнего трафика - PullRequest
2 голосов
/ 09 сентября 2010

Когда достигается предел maxThreads моего tomcat (6.0.20), я получаю ожидаемую ошибку:

Максимальное количество потоков (XXX), созданных для соединителя с нулевым адресом и портом 80

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

Ответы [ 2 ]

5 голосов
/ 09 сентября 2010

Подумайте о переключении на NIO , тогда вам не нужно беспокоиться о технических требованиях на 1 поток на соединение. Без NIO ограничение составляет около 5 тыс. Потоков (5 тыс. HTTP-подключений), а затем оно дует так. Благодаря NIO Java сможет управлять несколькими ресурсами в одном потоке, поэтому ограничение намного выше. Граница - это практически доступная куча памяти, примерно с 2 ГБ вы можете использовать до 20 КБ соединений.

Настроить Tomcat для использования NIO так же просто, как изменить атрибут protocol элемента <Connector> в /conf/server.xml на "org.apache.coyote.http11.Http11NioProtocol".

0 голосов
/ 15 июня 2011

Я думаю, что это может быть ошибка в Tomcat и в зависимости от проблемы:

https://issues.apache.org/bugzilla/show_bug.cgi?id=48843

должно быть исправлено в Tomcat 6.0.27 и 5.5.30

...