使用jdk自帶的jconsole、jvisualvm插件,監控遠程linux服務器中tomcat的jvm情況
(jconsole、jvisualvm插件可查看堆內存變化情況,線程狀態,CPU使用情況,分析線程死鎖等,可監控本地和遠程服務器的JVM,本地監控無須進行配置,下面是筆者實際操作的遠程監控的配置步驟)
步驟:
1、修改linux服務器中tomcat目錄的catalina.sh文件,配置遠程服務的端口
編輯tomcat的bin目錄下的catalina.sh文件,在“# ----- Execute The Requested Command -------------”插入
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true"
,其中port=9999,可自行設置,注意添加一個未使用的端口即可
修改完成,保存文件
2、修改linux服務器中jdk目錄的配置文件
進入/java/jre1.8.0_77/lib/management目錄,查看文件。
2.1 修改jmxremote.access文件,將文件最后兩行顯示【monitorRole和controlRole】的注釋取消,其中monitorRole為只擁有只讀權限的角色,controlRole有更高權限:讀寫等。編輯完成后,保存。
2.2 默認情況下該目錄下不存在jmxremote.password 文件,我們可以將jmxremote.password.template文件復制出來一份再重命名即可,然后修改jmxremote.password文件。同樣將文件最后兩行顯示【monitorRole和controlRole】的注釋取消。然后保存。
2.3 對jmxremote.access和jmxremote.password文件進行授權
3、修改/etc/hosts文件,把127.0.0.1改成本機IP,如192.168.101.100
4、在本地的jdk目錄下啟動jconsole.exe進行連接
輸入地址和端口,和用戶名密碼,其中端口為catalina.sh文件中配置的遠程服務端口;用戶名和口令為jmxremote.password文件中的賬號信息
連接可查看監控信息
5、同理可使用jvisualvm.exe插件連接,監控
(備注:參考資料:《全棧性能測試修煉寶典JMeter實戰》9.8 JVM監控)