Linux系统没有图形界面,用jvisualvm工具监控线程数和状态可能不方便,可以使用jstack命令统计。
首先使用命令获取服务的进程号pid
ps aux | grep java
第二列就是进程号,找到相应服务的进程号
然后cd到jdk的bin目录,使用jstack命令,目的是生成一个dump。
./jstack <pid> >/home/test.dump
最后统计dump里面的线程状态
grep java.lang.Thread.State /home/test.dump | awk '{print $2$3$4$5}' | sort | uniq -c