Java线程状态java
线程的五种状态web
* 新建:new(时间很短)windows
* 运行:runnabletomcat
* 等待:waitting(无限期等待),timed waitting(限期等待)服务器
* 阻塞:blockedapp
* 结束:terminated(时间很短)webapp
Jvm监控工具jvm
1、jstack工具
介绍:测试
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息。
若是是在64位机器上,须要指定选项"-J-d64",Windows的jstack使用方式只支持如下的这种方式:jstack [-l] pid
若是java程序崩溃生成core文件,jstack工具能够用来得到core文件的java stack和native stack的信息,从而能够轻松地知道java程序是如何崩溃和在程序何处发生问题。
另外,jstack工具还能够附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 若是如今运行的java程序呈现hung的状态,jstack是很是有用的。
使用:
一、查看运行程序的进程号
二、jstack dump当前线程状态
三、根据当前抓取到的信息进行进一步的分析
2、jvisualvm
jdk自带有个jvisualvm工具、该工具是用来监控java运行程序的cpu、内存、线程等的使用状况。而且使用图表的方式监控java程序、还具备远程监控能力。
前期准备
一、上传tomcat到虚拟机,webapps下存在Prefteach包
二、监控以前先对jvm加监控参数,在tomcat的bin目录下,catalina.sh文件中,搜索JAVA_OPTS=,在if里面,添加:
-Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.1.101
以上添加的内容,须要修改两处
1-改port
2-改hostname为本机ip
三、启动tomcat并打开输出日志:./startup.sh ../logs/catalina.out
jvisualvm使用
一、windows键+R键 输入jvisualvm回车
二、右键远程添加远程主机
三、在 主机ip 上右键添加jmv链接
四、输入远程链接的端口号点击肯定
五、双击192.168.1.101:10086,打开以下图所示的界面
六、进入jvisualvm时时查看程序运行状态
注释:在测试环境中有可能没有权限在服务器上添加须要远程链接的配置,这样只能使用jstack