So ermitteln Sie die aktuelle Threadanzahl von Tomcat

So ermitteln Sie die aktuelle Threadanzahl von Tomcat

Auf meinem Linux-Server führe ich Tomcat als Root aus. Beim Ausführen ps auxwird die folgende Ausgabe ausgegeben.

root     25667  0.1 29.2 4574004 306980 ?      Sl   Apr27  33:57 /usr/local/java/bin/java -Djava.util.logging.config.file...

Es gibt nur einen übergeordneten Prozess, aber wenn ich ihn ausführe, htopkann ich alle anderen untergeordneten Prozesse sehen (welche sind Threads?). Beispielausgabe für einige Zeilen unten.

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command                                                              
25668 root       15   0 4466M  299M 14208 S  0.0 29.3  0:01.23 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25669 root       18   0 4466M  299M 14208 S  0.0 29.3  0:54.84 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25670 root       15   0 4466M  299M 14208 S  0.0 29.3  0:00.25 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25671 root       15   0 4466M  299M 14208 S  0.0 29.3  0:00.54 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25672 root       18   0 4466M  299M 14208 S  0.0 29.3  0:00.00 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25673 root       15   0 4466M  299M 14208 S  0.0 29.3  0:17.96 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25674 root       15   0 4466M  299M 14208 S  0.0 29.3  0:20.01 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25675 root       19   0 4466M  299M 14208 S  0.0 29.3  0:00.00 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t

Ich möchte also mit einem einzigen Befehl eine Liste der untergeordneten Prozesse erhalten. Ich habe maxThreads in der Konfigurationsdatei auf 200 gesetzt und möchte die aktuelle Thread-Anzahl überprüfen, indem ich die untergeordneten Threads zähle.

Antwort1

Das geht ganz einfach:ps -eLf | grep java

Möglicherweise müssen Sie es anpassen (grep kann verfeinert werden, um das Gesuchte zu erhalten).

Antwort2

Sie können starten:

ps -o nlwp PID

(PID ist die PID Ihres Prozesses)

nlwp = Anzahl der Lightweight-Prozesse

Antwort3

Wenn Sie ein JDK installiert haben, ist eine sehr nützliche Möglichkeit, dies (und die verschiedenen Heap-Größen) in Echtzeit zu überwachen jconsole, , ein GUI-Programm (wenn Sie haben javac, sollten Sie dies auch haben). Es gibt auch Dinge wie jstatund jinfound andere. Um von jconsole zu profitieren, müssen Sie möglicherweise JMX aktivieren (dies kann auch für Remoteverbindungen erfolgen). Sie müssen diese Tools als derselbe Benutzer ausführen, der die JVM ausführt, die Sie überprüfen möchten.

topWenn Sie oder verwenden htop, können Sie H(Großbuchstabe) eingeben, um die Anzeige der Threads umzuschalten. Es lohnt sich, einen Blick auf die verschiedenen Tastenkombinationen zu werfen.

verwandte Informationen