我在Amazon Linux上使用带有Java 8的Wildfly 11。如何使用Wildfly CLI工具监控线程使用情况?我们的应用服务器上的CPU利用率很高,我正在尝试找出有问题的theads和操作是什么。我们的服务器上没有安装"jconsole“,或者本文可能会对我们有所帮助-- http://www.mastertheboss.com/jboss-server/jboss-monitoring/how-to-monitor-jboss-cpu-usage。
具体地说,我想知道我必须在CLI工具中键入的Wildfly子系统的名称是什么,它将显示长时间运行/高CPU使用率的线程。
发布于 2018-09-07 16:53:30
我会使用Java任务控制和它的飞行记录功能。您将需要获取jconsole.bat或jconsole.sh的副本并进行编辑,以便使用定义的类路径运行jmc。然后使用与jconsole相同的自定义jmx url。
发布于 2018-09-08 11:36:56
要找出哪个线程消耗了更多的CPU,您必须在遇到问题时收集CPU使用率(在RHEL中,使用top命令(top -b -n 1 -H -p JBoss_PID))和线程转储。从顶部的命令输出中,您可以识别使用大量CPU的java线程的进程ID。例如,output top命令显示三个Java线程正在使用CPU:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4382 root 25 0 1284m 480m 80m R 39.5 23.7 13:00.64 java
6657 root 25 0 1284m 480m 80m R 39.5 23.7 7:23.10 java
16322 root 25 0 1284m 480m 80m R 19.8 23.7 57:51.77 java使用线程转储分析器( Thread Dump Analyzer,TDA)工具,可以加载与CPU数据一起收集的线程转储。单击右上角窗格中的Native-ID列,按本机线程ID排序,并交叉引用顶部输出中的轻量级线程ID,以查看消耗高CPU的线程。
https://stackoverflow.com/questions/52211014
复制相似问题