如何查找 Tomcat 當前線程數

如何查找 Tomcat 當前線程數

在我的 Linux 伺服器上,我以 root 身分執行 tomcat,當我運行時,ps aux它會給出以下輸出。

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

Thre只是父進程,但是當我運行時,htop我可以看到所有其他子進程(哪些是線程?)。下面給出了幾行的範例輸出。

  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

所以我想用一個命令來取得子進程列表。我在設定檔中將 maxThreads 設為 200,並希望透過計算子執行緒來檢查當前執行緒數。

答案1

很容易做到:ps -eLf | grep java

可能需要調整(可以改進 grep 以獲得您正在尋找的內容)。

答案2

您可以啟動:

ps -o nlwp PID

(PID將是你的進程的pid)

nlwp = 輕量級進程數

答案3

如果您安裝了 JDK,即時監視它(以及各種堆大小)的一個非常有用的方法是jconsole,它是一個 GUI 程式(如果您有 JDK javac,您也應該有這個)。還有諸如jstat“and jinfo”之類的東西。為了從 jconsole 中受益,您可能需要啟用 JMX(對於遠端連線也可以這樣做)。您需要以執行要檢查的 JVM 的相同使用者身分執行這些工具。

如果您使用tophtop,則可以鍵入H(大寫)來切換線程的顯示。值得一看的是各種頂級擊鍵。

相關內容