Пожалуйста, уточните значение параметра maxQueueSize
в исполнителе tomcat.
Дополнительный вопрос - связано ли это с acceptCount
в коннекторе tomcat?
Заранее спасибо.
Пожалуйста, уточните значение параметра maxQueueSize
в исполнителе tomcat.
Дополнительный вопрос - связано ли это с acceptCount
в коннекторе tomcat?
Заранее спасибо.
Это очень хорошо упоминается здесь
Для каждого входящего запроса требуется поток на время выполнения этого запроса. Если получено больше одновременных запросов, чем могут обработать доступные в данный момент потоки обработки запросов, будут созданы дополнительные потоки до настроенного максимума (значение атрибута maxThreads). Если поступает еще больше одновременных запросов, они складываются внутри серверного сокета, созданного коннектором, до настроенного максимума (значение атрибута acceptCount). Любые дальнейшие одновременные запросы будут получать ошибки «отказ в соединении», пока не будут доступны ресурсы для их обработки.
maxQueueSize : -Максимальное количество выполняемых задач, которые могут стоять в очереди в ожидании выполнения, прежде чем мы их отклоним. Значение по умолчанию — Integer.MAX_VALUE.
Параметр acceptCount связан с очередью TCP. В этой очереди ОС может задерживать определенное количество подключений, даже если они не могут быть обработаны немедленно. Эта концепция зависит от ОС - для Linux вы можете понять это, обратившись к здесь и еще несколько идей здесь.
maxQueueSize – это очередь, содержащая фактические задачи обработки запросов, которые могут быть запущены с помощью максимум maxThreads количества потоков. На самом деле они находятся в очереди по той причине, что количество потоков обработки ограничено, и задача проводит некоторое время в очереди, прежде чем ее подберет Executor и назначит потоку, который свободен для выполнения задачи.