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