Tomcat 6 hinunter nach erreichen der maximalen Anzahl von threads
Unsere Tomcat-6.0.29 nach unten geht nach dem erreichen der maximalen Anzahl von Threads. Ich würde wirklich zu schätzen jede Hilfe, denn es ist ein Produktions-server.
Hier ist ein Teil der catalina.log-Datei:
INFO: Maximum number of threads (600) created for connector with address null and port 80
Mar 8, 2011 11:19:37 AM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-80
Mar 8, 2011 11:19:38 AM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Mar 8, 2011 11:19:38 AM org.apache.catalina.core.StandardWrapper unload
INFO: Waiting for 8 instance(s) to be deallocated
- Klingt wie eine bessere Passform für ServerFault.com
- Vielleicht haben Sie einen kürzeren timeout beim Aufruf einen thread tot, und verschieben Sie es zurück an den pool?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nehmen Sie einen Thread-Dump zu sehen, was hält Sie auf alle Ihre threads. Der stacktrace für jeden thread wird ein Hinweis auf Ihr problem mehr, dann die catalina.aus Fehler war.
Windows
auf der Konsole-Fenster, drücken Sie
ctrl + break
Unix
auf der Kommandozeile eingeben:
kill -3 <pid>
Diese können bedenkenlos eingenommen werden, die auf einen Laufenden Produktions-Instanz.
Es sieht aus wie Ihre Testamentsvollstrecker auf 500 oder 600 threads. Wenn jeder thread in der Regel greift auf eine DB-Verbindung, haben Sie das dbcp-pool eingestellt, um die gleiche Menge oder mehr?
Könnten Sie auch überprüfen Sie Ihre dbcp pool-Konfiguration
Haben Sie einen Blick auf swap-Speicher und andere Ressourcen. Ich hatte ein Erlebnis, wo die Speicherauslastung der einzelnen thread-zu hoch war (schlechte app-design), wodurch der server nicht mehr reagiert. Wenn dies der Fall ist (oder einfach zu testen) die Anzahl der threads reduzieren und sehen, ob es immer noch passiert.
Könnte Ihnen BTrace ein zu gehen.
Anbringen einer Sonde auf
org.apache.catalina.startup.Catalina
KlassestopServer
Methoden. Wenn das nicht hilft, versuchen Sie Suche nach einem anderen shutdown-hooks und die Befestigung von BTrace profiler zu Ihnen.Sollten Sie in der Lage sein, um die volle stack-trace zeigen, wer verlangt, dass shutdown.