1. 程式人生 > >jdk自帶的JVisualVM的視覺化監控

jdk自帶的JVisualVM的視覺化監控

如果你前面看了我幾篇關於jvm效能優化的文章,命令列操作是不是不直觀,那麼我們來使用這個JVisualVM吧,在jdk的bin資料夾裡,這個官方文件都有中文版,外掛啥的自己看著安裝。https://visualvm.github.io/pluginscenters.html

他主要有如下的功能:

      1.監控本地Tomcat

      2. 監控遠端Tomcat

      3.監控普通的JAVA程序

      功能 抽樣器-選擇cpu 可以檢視熱點方法,方法執行的時間,從而排除方法慢的原因(尤其是慢sql的情況下)

              抽樣器-選擇記憶體 動態引數物件佔用的記憶體

      安裝外掛  先設定外掛中心的地址,必須和角度看版本相同 外掛 Visual GC 圖形化的展示記憶體的變化情況

JMX 連線遠端機器

      1.啟動普通的jar程式

 java -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar foo.jar 

       2.遠端連線啟動authenticate、ssl引數,參考上面的命令

tomcat 配置

    1.不需要鑑權

JAVA_OPTS=-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false  

2.  鑑權

set JMX_REMOTE_CONFIG=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access set CATALINA_OPTS=%CATALINA_OPTS% %JMX_REMOTE_CONFIG%

  複製並修改授權檔案

JAVA_HOME/jre/lib/management下有jmxremote.access和jmxremote.password.template的模板檔案,將兩個檔案複製到CATALINA_BASE/conf目錄下
*重新命名jmxremote.password.template檔案為jmxremote.password
*修改CATALINA_BASE/conf/jmxremote.access 新增內容:
     monitorRole readonly
     controlRole readwrite
*修改CATALINA_BASE/conf/jmxremote.password 新增內容:
    monitorRole  liuke  #可自定義
   controlRole   liuke  #可自定義

tomcat 為 8.0.5 tomcat  catalina.sh 加入以下配置,需要配置的是下方的port(注意不要與其他的埠衝突),hostname 為虛擬機器的IP

JAVA_OPTS="$JAVA_OPTS 
 -Dcom.sun.management.jmxremote 
 -Dcom.sun.management.jmxremote.port=9004
 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 
 -Djava.net.preferIPv4Stack=true 
 -Djava.rmi.server.hostname=192.168.56.1"

遠端連結記得把9004埠號開放哦。。。