我有一个使用.war部署到tomcat的应用程序。
我正在获得有关此应用程序的一些CPU消耗问题,并且我希望看到有关它的进程的一些细节。 但是当我跑到最顶端时,我只是得到这样的东西:
PID用户PR NI VIRT RES SHR S%CPU%MEM TIME + COMMAND
2310 app1 20 0 11.1g 1.4g 11m S 191.3 14.5 31:32.67 java
21 root 20 0 0 0 0 S 11.7 0.0 0:29.89 ksoftirqd / 4
3387 xymon 20 0 15156 1176 792 R 2.0 0.0 0:00.01 top
1 root 20 0 19352 1528 1212 S 0.0 0.0 0:00.54 init
但这只表明tomcat / java正在消耗我的CPU。 我想看看那个tomcat的子进程是什么问题, 但是使用top命令,只能看到tomcat进程。
感谢您的帮助。
答案 0 :(得分:0)
您需要配置JMX以查看哪些进程/线程正在消耗时间的详细信息。
下面可以为JMX配置Java_OPTS。
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
完成后,您可以在JDK目录中使用Jconsole或JVisualVM作为JDK安装的一部分