如何查找 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...

只有一个父进程,但运行时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,实时监控 JDK(以及各种堆大小)的一个非常有用的方法是jconsole,这是一个 GUI 程序(如果您有javac,您也应该有这个)。还有jstatjinfo等。要从 jconsole 中受益,您可能需要启用 JMX(远程连接也可以这样做)。您需要以运行要检查的 JVM 的同一用户身份运行这些工具。

如果您使用tophtop,则可以键入H(大写) 来切换线程显示。值得一看的是各种顶级按键。

相关内容