Wie kann ich den Thread-Pool von Tomcat überwachen / protokollieren?
Ich habe eine Tomcat-installation, wo ich vermute, der thread pool kann eine Verringerung im Laufe der Zeit durch threads, die nicht ordnungsgemäß freigegeben werden. Ich bekomme einen Fehler in der catalina.aus, wenn maxthreads erreicht ist, aber ich würde gerne melden Sie die Anzahl der threads verwenden, um eine Datei alle fünf Minuten, so kann ich verifizieren diese Hypothese. Würde jemand bitte in der Lage sein zu beraten, wie diese kann getan werden?
Auch in dieser installation gibt es keine Tomcat-manager, es erscheint wer auch immer das war bei der ursprünglichen installation gelöscht, die manager-webapp aus irgendeinem Grund. Ich bin mir nicht sicher, ob manager in der Lage sein würde zu tun, die oben, oder wenn ich ihn neu installieren können, ohne die vorhandene installation? Alles, was ich wirklich tun wollen ist, verfolgen des thread-pool.
Auch ist mir aufgefallen, dass maxthreads für Tomcat ist 200, aber die max Anzahl der gleichzeitigen verbindungen für Apache ist niedriger (Apache mit mod_proxy und mod_proxy_ajp (AJP 1.3) zu füttern, Tomcat). Das scheint falsch zu sein, was ist die richtige Beziehung zwischen diesen zahlen?
Jede Hilfe viel geschätzt 😀
Update: Nur ein kurzes update zu sagen, die direkte JMX-Zugriff gearbeitet. Wie auch immer, ich musste Dcom.Sonne.management.jmxremote.host. Ich habe es auf localhost und es funktionierte, jedoch ohne die es keine Würfel. Wenn jemand anderes ein ähnliches problem bei Versuch zum aktivieren von JMX-ich empfehle Ihnen, setzen Sie diesen Wert auch dann, wenn Sie eine Verbindung vom lokalen Rechner. Scheint, dass es erforderlich ist, mit einigen Versionen von Tomcat.
Nur ein kurzes update zu sagen, die direkte JMX-Zugriff gearbeitet. Wie auch immer, ich musste Dcom.Sonne.management.jmxremote.host. Ich habe es auf localhost und es funktionierte, jedoch ohne die es keine Würfel. Wenn jemand anderes ein ähnliches problem bei Versuch zum aktivieren von JMX-ich empfehle Ihnen, setzen Sie diesen Wert auch dann, wenn Sie eine Verbindung vom lokalen Rechner. Scheint, dass es erforderlich ist, mit einigen Versionen von Tomcat.
InformationsquelleAutor der Frage Alex P | 2011-09-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Direkte JMX-Zugriff
Versuchen Sie, diese zu
catalina.sh
/bat
:UPDATE: Alex P vorschlagen, dass die folgenden Einstellungen können auch erforderlich, in einigen Situationen:
Dies ermöglicht anonyme remote-JMX-verbindungen auf port 5005. Sie können auch prüfen, JVisualVM, die viel mehr bitte und erlaubt das durchsuchen JMX über ein plugin.
Was Sie suchen, ist
Catalina
->ThreadPool
->http-bio-8080
-> verschiedene interessante Kennzahlen.JMX-proxy-servlet
Einfachere Methode ist die Verwendung von Tomcat JMX-proxy-servlet unter: http://localhost:8080/manager/jmxproxy. Zum Beispiel versuchen, diese Abfrage:
Ein wenig
grep
ping-und scripting-und können Sie ganz einfach und aus der Ferne überwachen Ihre Anwendung. Beachten Sie, dasstomcat:tomcat
ist der Benutzername/Passwort des Benutzers, mitmanager-jmx
Rolle inconf/tomcat-users.xml
.InformationsquelleAutor der Antwort Tomasz Nurkiewicz
Für eine enterprise-Lösung. Ich habe mit Neue Reliquie, die in unserer Produktionsumgebung.
Dieser bietet eine grafische Darstellung der änderungen in den threadpool über die Zeit.
InformationsquelleAutor der Antwort Tinman
Können Sie die Bereitstellung jolokia.Krieg und dann abrufen mbeans Werte im JSON - (ohne manager):
http://localhost:8080/jolokia/read/Catalina:name=*,Typ=ThreadPool?ignoreErrors=true
Wenn Sie möchten, dass nur einige Werte (currentThreadsBusy maxThreads, currentThreadCount, connectionCount):
http://localhost:8080/jolokia/read/Catalina:name=*,type=ThreadPool/currentThreadsBusy,maxThreads,currentThreadCount,connectionCount?ignoreErrors=true
Hinweis: Dieses Beispiel funktioniert auf Tomcat7 +.
InformationsquelleAutor der Antwort c-toesca