日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jvisualvm远程监控Tomcat

發布時間:2025/3/20 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jvisualvm远程监控Tomcat 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

一.Java VisualVM 概述


? 對于使用命令行遠程監控jvm?太麻煩??在jdk1.6?中?Oracle?提供了一個新的可視化的。?JVM?監控工具?Java?VisualVM?jvisualvm.exe?JDK?的?bin?目錄下。

?

???雙擊啟動?Java?VisualVM?后可以看到窗口左側?“應用程序?”欄中有“?本地?”、“遠程?”?、“快照?”三個項目。

?

??“本地?”下顯示的是在?localhost?運行的?Java?程序的資源占用情況,如果本地有?Java?程序在運行的話啟動?Java?VisualVM?即可看到相應的程序名,點擊程序名打開相應的資源監控菜單,以圖形的形式列出程序所占用的?CPU?、?Heap?、?PermGen?、類、線程的?統計信息。


??“遠程”?項下列出的遠程主機上的?Java?程序的資源占用情況,但需要在遠程主機上運行?jstatd?守護程序

?


VisualVM分為?3?類,?本地?它會自動偵測到,并顯示出來

雙擊Local?下的任一節點,看到右邊的變化?,你可以監控?CPU?,內存,類,線程等運行狀況,實時監控服務器性能。

?


?右鍵?VisualVM我們可以看到?Thread?Dump,?Heap?Dump

?做?Thread?Dump?很快,馬上就可以看到結果

?

?

Heap?Dump要稍花費一些時間(可以看到當前?heap?里對象的數量及占用的比例,做?OOM?很好用)

?

?

?

對其功能不再做描述,可以查閱網上相關質量,我們主要講的是如何使用?VisualVM?遠程監控。


二.使用visualvm 遠程監控 JVM??

1.?測試環境

Ubuntu?Server?10.01

?

2.??在服務器上安裝?jstatd?組件

使用apt-get?命令安裝?openjdk?即可?:

?

Java代碼??
  • sudo?apt-get?install?openjdk-6-jdk??
  • ?

    3.?在服務器上配置?jstatd?的?security?policy?文件

    ?? jstatd是一個監控?JVM?從創建到銷毀過程中資源占用情況并提供遠程監控接口的?RMI?(?Remote?Method?Invocation?,遠程方法調用)服務器程序,它是一個?Daemon?程序,要保證遠程監控軟件連接到本地的話需要?jstatd?始終保持運行。?

    ?? jstatd運行需要通過?-J-Djava.security.policy=***?指定安全策略,因此我們需要在服務器上建立一個指定安全策略的文件jstatd.all.policy?,文件內容如下:

    ?

    Java代碼??
  • grant?codebase?"file:${java.home}/../lib/tools.jar"?{??
  • ???permission?java.security.AllPermission;??
  • };??
  • ?

    ?

    4.?修改服務器?hosts?文件中的?IP?地址

    ?

    ?? 要使Java?VisualVM?成功連接到遠程服務器上,服務器端應該在?/etc/hosts?文件中把本機地址設為本機的?IP?地址。使用?hostname?-i?命令查看,如果顯示的是?127.0.0.1?或者與本機實際?IP?不一致的話,需要把?/etc/hosts?文件中相應的地址改為本機實際?IP?。

    ?

    5.?運行?jstatd?守護程序

    ?

    ? 由于?jstatd?需要保持一直運行,所以建議使用?screen?命令執行?jstatd?程序,命令如下:

    Java代碼??
  • screen?jstatd?-J-Djava.security.policy=jstatd.all.policy??
  • ?

    如果需要RMI?日志功能的話,還可以在啟動參數中加入?-J-Djava.rmi.server.logCalls=true?。

    Java代碼??
  • screen?jstatd?-J-Djava.security.policy=jstatd.all.policy?-J-Djava.rmi.server.logCalls=true??
  • ?

    ?

    jstatd開始運行后,使用?CTRL+A+D?斷開?screen?界面,回到?shell?界面。如果想切換回?jstatd?運行界面的話,使用?screen?-r?-d命令即可。

    ?

    6.?通過Java?VisualVM?連接到服務器監控?Java?程序

    ?? 在Java?VisualVM?程序窗口左側?“?遠程?”?項目右鍵選擇?“?添加遠程主機?”?,在彈出的對話框中輸入遠程主機的?IP?地址,確認提交后即可看到相應的遠程主機和在上面運行的?Java?程序,連接成功后應該會顯示?Jstatd?及其?PID?。

    ?

    ?

    ? 通過以上方式連接服務器發現一個問題,不能監控CPU?。提示我們建立?JMX?,建立?JMX?提示要求端口號。(?JMX:Java?Management?Extensions?,即?Java?管理擴展?,?是一個為應用程序、設備、系統等植入管理功能的框架。?JMX?可以跨越一系列異構操作系統平臺、系統體系結構和?網絡傳輸協議,靈活的開發無縫集成的系統、網絡和服務管理應用?。而Visual?VM是通過?JMX?來和遠程?Java?應用聯系的?)。

    ?

    ?

    7.?T?omcat中配置

    ? 下面我們為54?服務器的?tomcat?配置?jvm?啟動參數。??tomcat?的?catalina.sh?中添加如下參數:

    Java代碼??
  • JAVA_OPTS='-Dcom.sun.management.jmxremote.port=8999?-Dcom.sun.management.jmxremote.ssl=false?-Dcom.sun.management.jmxremote.authenticate=false'???
  • ?

    或:

    Java代碼??
  • JAVA_OPTS=’-Dcom.sun.management.jmxremote.port=1099?-Dcom.sun.management.jmxremote.ssl=false?-Dcom.sun.management.jmxremote.authenticate=false?-Djava.rmi.server.hostname=192.168.1.54??其他配置’??
  • ?

    ?

    ?

    注:1.?-Dcom.sun.management.jmxremote.port?:這個是配置遠程?connection?的端口號的,要確定這個端口沒有被占用

    2.?-Dcom.sun.management.jmxremote.ssl=false?指定了?JMX?是否啟用?ssl

    3.?-Dcom.sun.management.jmxremote.authenticate=false???指定了JMX?是否啟用鑒權(需要用戶名,密碼鑒權)

    ?? 2,3兩個是固定配置,是?JMX?的遠程服務權限的

    4.?-Djava.rmi.server.hostname?:這個是配置?server??IP?

    ?

    ?

    連接成功,現在我們可以遠程監控服務器性能,可以配合?jmeter?進行了一個長時間的加壓,在加壓過程中重點關注了系統資源的使用情況。

    轉載于:https://my.oschina.net/liting/blog/520621

    總結

    以上是生活随笔為你收集整理的jvisualvm远程监控Tomcat的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。