java監控工具備忘

  1. jps
    1. 查看java進程
    2. jps -q只顯示進程號,不顯示短名稱
    3. jps -m顯示傳遞給進程的參數
    4. jps -l顯示主函數的完整路徑
    5. jps -v顯示傳遞給虛擬機的參數
  2. jstat
    1. 用於觀察java應用程序運行時相關信息的工具,功能非常強大
    2. jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
  3. jinfo
    1. 查看正在運行的java應用程序的擴展參數,甚至支持在運行時修改部分參數
    2. jinfo <option> <pid>
  4. jmap
    1. 導出堆到文件
    2. jmap -histo 2128 > info.log 生成進程2128的java程序的對象統計信息,並輸出到info.log文件;
    3. jmap -dump:format=b,file=heap.dump 2128  將2128java進程的堆快照導出指定文件中,後期可以用分析工具(例如jhat,visual VM,MAT等)分析該快照文件;
    4. jmap -permstat 2128 查看2128java進程的classLoader
    5. jmap -finalizerinfo 2128查看2128java進程的finalizer隊列;
  5. jhat
    1. jdk自帶的堆分析工具
    2. jhat heap.dump將分析heap.dump堆信息文件,並啓動http服務,可以通過輸出的地址和端口查看堆信息文件中的信息。
    3. 支持OQL語言,方便查詢堆信息中的指定內容
  6. jstack
    1. jstack [-l] <pid>    -l用於打印鎖的附加信息
    2. 不僅可以得到線程堆棧,還能幫助發現死鎖現象及死鎖發生的線程及死鎖相關的對象,幫助解決死鎖問題。
  7. jstatd
    1. jstatd用於協助jps,jstat等工具監控遠程機器上的java進程
    2. 需要在被監控的機器上啓動jstatd,然後可以通過jps IP:port監控指定IP的java進程信息,其中port爲jstatd默認的1099
  8. jcmd
    1. jcmd是1.7之後新增的一個多功能合一的工具,可以用來查看java進程,導出堆,導出棧信息,執行GC命令等等
    2. jcmd -l列出系統中的虛擬機;
    3. jcmd 2128 help,獲取2128虛擬機所支持的命令
    4. jcmd 2128 VM.uptime如果2128支持VM.uptime命令,可以通過這個命令查看運行時間;
  9. hprof
    1. 它是一個java agent工具,用於監控java應用程序運行時的cpu信息和堆信息。
  10. jconsole
  11. visual VM
    1. jdk自帶的,支持插件,支持遠程,所以可以替代上述幾乎所有的工具
  12. BTrace
    1. 是visual VM的一個插件工具。
  13. JRockit Mission  Control虛擬機診斷工具
    1. jdk1.7 u40之後發佈的工具,但openjdk並沒有包含。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章