Свойства maxThreads, currentThreadCount, currentThreadsBusy JMX относятся к пулу потоков, который Tomcat Connector использует для обработки входящих запросов.Вы можете видеть потоки, обычно называемые http-nio-[port-number]-exec-[sequence-number]
, в списке потоков вашего приложения.Когда запрос поступает в Соединитель, последний с помощью пула потоков назначает ему определенный поток, этот поток будет «занят», пока запрос не будет обработан.Так, currentThreadsBusy отражает количество запросов, которые обрабатываются в данный момент.
maxThreads определяет количество потоков, которые вы не хотите превышать ни в коем случае,Когда счетчик currentThreadsBusy достигает порогового значения maxThreads, запросы больше не обрабатываются, и приложение дросселирует.
currentThreadCount указывает количество потоков в пуле потоков, как занятых, так и свободных, потокпул прервет некоторые потоки, если они не будут использоваться в течение определенного периода времени, или создаст новые, вплоть до maxThreads, если есть спрос, см. подробности ниже.
«Под капотом», начиная с Tomcat 7org.apache.tomcat.util.net.AbstractEndpoint
отвечает, помимо прочего, за управление потоками.Если он использует java.util.concurrent.ThreadPoolExecutor
в качестве пула потоков (выбор по умолчанию), maxThreads отображается на ThreadPoolExecutor maximumPoolSize
, currentThreadsBusy - на activeCount
, а currentThreadCount - на poolSize
.
Сказав это, currentThreadsBusy - лучший выбор для мониторинга состояния веб-приложения .maxThreads больше похож на статическое значение (если вы не измените его динамически, по желанию).currentThreadCount может предоставить некоторую полезную информацию с определенной временной задержкой.