Узнайте количество подключений к серверу Tomcat - PullRequest
9 голосов
/ 05 февраля 2010

У меня есть веб-приложение Java / Java EE, развернутое на Tomcat Server 5.5.17. Я хочу знать количество клиентов, которые подключены к серверу. Как мы можем это выяснить?

Ответы [ 3 ]

18 голосов
/ 06 февраля 2010

Самый надежный способ - поиск ip.addr.of.srv:port в netstat. Вот пример для Windows (извините, здесь нет гуру Linux;))

netstat -np tcp | find "12.34.56.78:80"

Замените 12.34.56.78 на IP, где Tomcat прослушивает, и 80 на порт, где Tomcat прослушивает.

На самом деле это не проблема программирования, поэтому я проголосовал за перенос этого вопроса на serverfault.com .

4 голосов
/ 24 мая 2016

И если вам нужно понять, что делает каждое соединение, используйте это на linux

netstat -an | grep :8080 | awk '{print $6}'

Если есть три соединения, вы увидите

СЛУШАТЬ ВРЕМЯ ЖДЕТ TIME_WAIT

И если вы хотите считать только те соединения, которые находятся в состоянии TIME_WAIT

netstat -an | grep :8080 | grep TIME_WAIT | wc -l
3 голосов
/ 06 февраля 2010

См. Раздел Tomcat Manager , где приведен пример подсчета сеансов в веб-приложении.

Подсчет количества соединений, вероятно, немного сложнее. Tomcat запускает новый поток для каждого запроса, который достигает максимального значения «maxProcessors». Помимо этого числа запросы помещаются в очередь до максимума «acceptCount». Запросы, превышающие это число, отклоняются / отбрасываются (или происходит сбой, я не уверен). Свойства можно отслеживать с помощью JConsole - шаги здесь . Указанные выше конкретные свойства являются свойствами HTTP Connector .

РЕДАКТИРОВАТЬ 1: После просмотра исходного кода CoyoteConnector и AJP Connector обнаруживается закрытое свойство curProcessors, которое отслеживает число используемых в настоящее время процессоров. Однако добавление переменной curProcessors в файл mbeans для соединителей, по-видимому, не отображает текущее значение на дисплее JConsole.
Примечание: XML-файл mbeans, который я изменил, находился в tomcat \ server \ lib \ catalina.jar и находится в каталоге org \ apache \ catalina \ connector в банке. Ниже приведен пример записи, которую я добавил:
<attribute name="curProcessors" description="the number of processors currently in use" type="int"/>

...