Tomcat Thread Monitoring Mbeans Описание - PullRequest
1 голос
/ 17 октября 2011

В связанных с потоками Mbeans Tomcat я вижу под Catalina.ThreadPool.

есть различные атрибуты, а именно.maxThreads, currentThreadCount, currentThreadsBusy и т. д.

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

также возможно Я хотел бы увидеть исходный код, где я могу его получить?

Когда я вижу имя класса Mbean (через jconsole), оноотображается как org.apache.tomcat.util.modeler.BaseModelMBean, но когда я просматриваю исходный код BaseModelMBean, я вижу, что нет ни полей, ни элементов данных, представляющих эти атрибуты, упомянутые выше, для части этого класса или интерфейсов, которые он реализует.

Тогда какая реализация Mbean представлена ​​здесь ??

Ответы [ 2 ]

2 голосов
/ 11 января 2017

Свойства 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 может предоставить некоторую полезную информацию с определенной временной задержкой.

0 голосов
/ 28 апреля 2012

Вы можете прочитать о getCurrentThreadCount (), getCurrentThreadsBusy () и maxThreads в JIoEndpoint: Javadoc или же Источник

...