日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

企業級應用開發中經常會遇到以下問題,可以使用工具對JVM進行監管,以便及時查找問題所在。
  內存不足OutOfMemory(大對象沒有gc等),內存泄露;
  線程死鎖,線程數過多;
  鎖爭用(Lock Contention),資源未及時釋放(數據庫);
  JAVA進程CPU消耗過高.

一、Java自帶工具

  Java安裝目錄的bin文件加下有一些工具可以用來監控JVM性能,如jconsole、jvisualvm、jmap、jps、jstack、jhat、jstat等。

1. jconsole

  jconsole可以監控Java應用程序(如jar應用、Tomcat等),但被監視的應用程序必須和jconsole是用同一個用戶運行的。jvisualvm的使用和jconsole類似。

  • 本地監控: jconsole pid
  • 遠程監控: jconsole [ hostname:portNum ]

使用遠程監控需要配置jmx代理信息,修改Tomcat的bin目錄下的catalina.bat。

set JAVA_OPTS= %JAVA_OPTS% -Djava.rmi.server.hostname=HostIP
set JAVA_OPTS= %JAVA_OPTS% -Dcom.sun.management.jmxremote.port=8888
set JAVA_OPTS= %JAVA_OPTS% -Dcom.sun.management.jmxremote.ssl=false
set JAVA_OPTS= %JAVA_OPTS% -Dcom.sun.management.jmxremote.authenticate=false

  連接成功后可以在overview中查看內存、線程、類及CPU使用情況:

JVM 性能調優監控工具

 

2. probe

  Lambda Probe 是基于 Web + AJAX 的強大的免費開源工具,可以用來實時管理一個單獨的host。LambdaProbe擁有幾乎所有Tomcat Manager的功能,還包括應用程序、數據源、發布、日志、線程、集群、系統信息、狀態、連接器狀態這些功能,并能顯示 Server 的詳細內存占用狀態。

  probe war包下載

3. jmap

  打印java進程的堆內存信息。

  • jmap -heap pid    查看heap的概要信息,GC使用的算法、heap的配置及wise heap的使用情況.
  • jmap -histo[:live] pid 查看堆內存中的每個類的類名、實例數量、內存占用大小
  • jmap -dump:live, format=b, file=fileName pid 將內存使用情況導出到文件中,再用jhat、MAT、VisualVM分析查看,以便查找內存溢出原因

4. jhat

  jhat可以對JVM中導出的文件進行分析,使用命令 jhat fileName 即可以在瀏覽器中輸入http://localhost:7000查看內存信息。如果Dump文件太大需要加上-J-Xmx512m指定最大堆內存,如 jhat -J-Xmx512m [-port 9998] tmp.bin

  分析內存還可以使用Eclipse的Memory Analyzer,插件地址
http://download.eclipse.org/releases/juno,找到General Purpose Tools底下的Memory Analyzer并安裝。

5. jstat

  查看classloader,compiler,gc相關信息,實時監控資源和性能 。jstat工具特別強大,可以用來監視VM內存內的各種堆和非堆的大小及其內存使用量。

語法結構:

jstat -<option> [-t] [-h<lines>] <pid> [<interval> [<count>]]

Options — 通常使用 -gcutil 查看gc情況
interval – 間隔時間,單位為秒或者毫秒
count — 打印次數,如果缺省則打印無數次

結果說明:

S0 — Heap上的 Survivor space 0 區已使用空間的百分比
S1 — Heap上的 Survivor space 1 區已使用空間的百分比
E — Heap上的 Eden space 區已使用空間的百分比
O — Heap上的 Old space 區已使用空間的百分比
P — Perm space 區已使用空間的百分比
YGC — 從應用程序啟動到采樣時發生 Young GC 的次數
YGCT— 從應用程序啟動到采樣時 Young GC 所用的時間(單位秒)
FGC — 從應用程序啟動到采樣時發生 Full GC 的次數
FGCT— 從應用程序啟動到采樣時 Full GC 所用的時間(單位秒)
GCT — 從應用程序啟動到采樣時用于垃圾回收的總時間(單位秒)

  • jstat –class<pid> : 顯示加載class的數量,及所占空間等信息。
  • jstat -compiler <pid>: 顯示VM實時編譯的數量等信息。
  • jstat -gc <pid>: 顯示gc的信息,查看gc的次數,及時間。
  • jstat -gccapacity <pid>: 顯示VM內存中三代(young,old,perm)對象的使用和占用大小
  • jstat -gcutil <pid>: 統計gc信息
  • jstat -gcnew / gcnewcapacity<pid>: 年輕代對象的信息(及其占用量)。
  • jstat -gcold / gcoldcapacity <pid> :old代對象的信息(及其占用量)。
  • jstat -gcpermcapacity <pid>: perm對象的信息及其占用量。
  • jstat -printcompilation <pid>: 當前VM執行的信息。
JVM 性能調優監控工具

 

6. jstack

  jstack用于生成java虛擬機當前時刻的線程快照,主要目的是定位線程出現長時間停頓的原因,如線程間死鎖、死循環、請求外部資源導致的長時間等待等。

語法: jstack [ option ] pid

-F 當 jstack [-l] pid 沒有響應的時候強制打印棧信息

-l 長列表. 打印關于鎖的附加信息,例如屬于java.util.concurrent的ownable synchronizers列表.

JVM 性能調優監控工具

 

jstack應用一: JVM調優之jstack找出最耗cpu的線程并定位代碼

jstack應用二: 三個實例演示 Java Thread Dump 日志分析

7. jps

用來查看基于HotSpot JVM里面所有進程的具體狀態, 包括進程ID,進程啟動的路徑等等。

命令格式:jps [options ] [ hostid ]

[options]選項 :
-q: 輸出VM標識符pid
-m:輸出main method的參數
-l: 輸出完全的包名,應用主類名,jar的完全路徑名
-v: 輸出jvm參數
-V: 輸出通過flag文件傳遞到JVM中的參數
-Joption:傳遞參數到vm,例如:-J-Xms512m

[hostid]:[protocol:][[//]hostname][:port][/servername]

JVM 性能調優監控工具

 

學習更多JAVA知識與技巧,關注與私信博主(666)

如果本文對你有幫助,別忘記給我個3連 ,點贊,轉發,評論,

,咱們下期見!答案獲取方式:已贊 已評 已關~

分享到:
標簽:JVM
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定