11 Stimmen

Ermitteln der Anzahl der Verbindungen zum Tomcat-Server

Ich habe eine Java/Java EE-Webanwendung, die auf Tomcat Server 5.5.17 eingesetzt wird. Ich möchte die Anzahl der Clients wissen, die mit dem Server verbunden sind. Wie können wir das herausfinden?

21voto

BalusC Punkte 1034465

Der zuverlässigste Weg wäre die Suche nach ip.addr.of.srv:port en netstat . Hier ist das Windows-basierte Beispiel (sorry, kein Linux-Guru hier ;) )

netstat -np tcp | find "12.34.56.78:80"

Ersetzen Sie 12.34.56.78 nach IP, auf der Tomcat lauscht und 80 nach Port, an dem Tomcat lauscht.

Dies ist eigentlich kein Programmierproblem, daher habe ich dafür gestimmt, diese Frage nach serverfault.com .

4voto

vsingh Punkte 5947

Und wenn Sie herausfinden wollen, was die einzelnen Verbindungen tun, verwenden Sie dies unter Linux

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

Wenn es drei Verbindungen gibt, sehen Sie

LISTEN ZEIT_WARTEN ZEIT_WARTEN

Und wenn Sie nur die Verbindungen zählen wollen, die sich im TIME_WAIT-Zustand befinden

netstat -an | grep :8080 | grep TIME_WAIT | wc -l

3voto

Thimmayya Punkte 2044

Siehe den Abschnitt unter Tomcat-Manager für ein Beispiel zum Zählen der Sitzungen in einer Webanwendung.

Die Anzahl der Verbindungen zu zählen, ist wahrscheinlich etwas schwieriger. Tomcat startet einen neuen Thread für jede eingehende Anfrage bis zu einer maximalen Anzahl von maxProcessors . Bei Überschreitung dieser Zahl werden die Anfragen in eine Warteschlange gestellt, bis zu einem Maximum von acceptCount . Anfragen, die über diese Zahl hinausgehen, werden abgelehnt/gelöscht (oder stürzen ab, ich bin mir nicht sicher). Die Eigenschaften können mit einer JConsole überwacht werden: Schritte hier . Die oben genannten spezifischen Eigenschaften sind Eigenschaften des HTTP-Anschluss .

EDIT 1:

Nachdem ich den Quellcode von CoyoteConnector und AJP Connector durchgesehen habe, gibt es eine private Eigenschaft namens curProcessors die die Anzahl der derzeit genutzten Prozessoren anzeigt. Das Hinzufügen der Variable curProcessors zur mbeans-Datei für Konnektoren scheint jedoch nicht den aktuellen Wert in der JConsole-Anzeige anzuzeigen.

Hinweis: Die von mir geänderte mbeans-XML-Datei befand sich im Tomcat \server\lib\catalina.jar und ist in der Organisation \apache\catalina\connector Verzeichnis im jar. Unten sehen Sie ein Beispiel für den Eintrag, den ich hinzugefügt habe:

<attribute   name="curProcessors"
    description="the number of processors currently in use"
    type="int"/>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X