Java線程及Jvm監控工具


 

“昨天晚上很冷讓我遇見你,你站在德克士門口等你男朋友,
我站在你對面街上看了你那么久,
你男朋友為何要對你發火,你倆走了好幾條街為何他不把你的手放進他的衣兜里,
為什么你男朋友要走在前面,為何一起吃飯不給你點干煸魷魚,為何晚上不送你回家,
為何我最寶貝的一個人,在別人眼里就什么都不是了。”
——金玟岐《歲月神偷》

 

Java線程狀態

線程的五種狀態

* 新建:new(時間很短)

* 運行:runnable

* 等待:waitting(無限期等待),timed waitting(限期等待)

* 阻塞:blocked

* 結束:terminated(時間很短)

Jvm監控工具

一、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是非常有用的。

使用:

1、查看運行程序的進程號

2、jstack dump當前線程狀態

3、根據當前抓取到的信息進行進一步的分析

二、jvisualvm

jdk自帶有個jvisualvm工具、該工具是用來監控java運行程序的cpu、內存、線程等的使用情況。並且使用圖表的方式監控java程序、還具有遠程監控能力。

前期准備

1、上傳tomcat到虛擬機,webapps下存在Prefteach包

2、監控之前先對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

3、啟動tomcat並打開輸出日志:./startup.sh ../logs/catalina.out

jvisualvm使用

1、windows鍵+R鍵 輸入jvisualvm回車

2、右鍵遠程添加遠程主機

 

3、在 主機ip 上右鍵添加jmv連接

 

4、輸入遠程連接的端口號點擊確定

5、雙擊192.168.1.101:10086,打開如下圖所示的界面

 

6、進入jvisualvm時時查看程序運行狀態

注釋:在測試環境中有可能沒有權限在服務器上添加需要遠程連接的配置,這樣只能使用jstack


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM