最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入理解java虛擬機(jī)的故障處理工具

 更新時(shí)間:2016年11月24日 08:43:40   投稿:daisy  
大家都知道在給系統(tǒng)定位問(wèn)題的時(shí)候,知識(shí)、經(jīng)驗(yàn)是關(guān)鍵基礎(chǔ),數(shù)據(jù)是依據(jù),工具是運(yùn)用知識(shí)處理數(shù)據(jù)的手段。Java開(kāi)發(fā)人員可以在jdk安裝的bin目錄下找到除了java,javac以外的其他命令。這些命令主要是一些用于監(jiān)視虛擬機(jī)和故障處理的工具,下面來(lái)看看詳細(xì)的介紹。

前言

本文主要給大家介紹的是java虛擬機(jī)的故障處理工具,文中提到這些工具包括:

名稱(chēng) 主要作用
jps JVM process Status Tool, 顯示指定系統(tǒng)內(nèi)所有的HotSpot虛擬機(jī)進(jìn)程。通常是本地主機(jī)
jstat JVM Statistics Monitoring Tool,用于收集HotSpot虛擬機(jī)各方面的運(yùn)行數(shù)據(jù)
jinfo Configuration Info for java, 顯示虛擬機(jī)配置信息
jmap Memory Map for Java, 生成虛擬機(jī)的內(nèi)存存儲(chǔ)快照(heapdump文件)
jhat JVM Heap Dump Browser, 用于分析heapdump文件,它建立一個(gè)HTTP/HTML服務(wù)器,讓用戶(hù)可以在瀏覽器上查看分析結(jié)果
jstack Stack Trace for Java, 顯示虛擬機(jī)的線(xiàn)程快照

jps:虛擬機(jī)進(jìn)程狀況工具

jps的功能和unix/liunx中的ps命令是類(lèi)似。只不過(guò)它是打印出正在運(yùn)行的虛擬機(jī)進(jìn)程,并顯示虛擬機(jī)執(zhí)行主類(lèi)的名稱(chēng)以及這些進(jìn)程的本地虛擬機(jī)唯一ID(Local Virtual Machine Identifier, LVMID,通常是系統(tǒng)進(jìn)程ID)。

jps命令格式:

jps [options] [hostId]

jps可以通過(guò)RMI協(xié)議查詢(xún)開(kāi)啟了RMI服務(wù)的遠(yuǎn)程虛擬機(jī)進(jìn)程狀態(tài),hostId為RMI注冊(cè)表中注冊(cè)的主機(jī)名稱(chēng)。

jps其他常用選項(xiàng):

     -q 只輸出LVMID, 省略主類(lèi)的名稱(chēng);

     -m 輸出虛擬機(jī)進(jìn)程啟動(dòng)時(shí)候傳遞給主類(lèi)main()函數(shù)的參數(shù);

     -l 輸出主類(lèi)的全稱(chēng),如果進(jìn)程執(zhí)行的是jar包,輸出jar路徑;

     -v 輸出虛擬機(jī)進(jìn)程啟動(dòng)時(shí)候JVM參數(shù)。

jps命令樣例:

[root@localhost ~]# jps -l
3914 org.zhangyoubao.payservice.App
12180 sun.tools.jps.Jps
6913 org.zhangyoubao.userprofiler.App

jstat:虛擬機(jī)統(tǒng)計(jì)信息監(jiān)視工具

jstat是用于監(jiān)視虛擬機(jī)各種運(yùn)行狀態(tài)信息的工具。它可以顯示本地或遠(yuǎn)程虛擬機(jī)進(jìn)程中類(lèi)load,內(nèi)存gc.jit等運(yùn)行參數(shù)。

jstat命令格式:

jstat [option vmid [interval [s|ms] [count]]]

interval和count代表查詢(xún)間隔和次數(shù)。如果省略這兩個(gè)參數(shù),說(shuō)明只查詢(xún)一次。

jstat其他常用選項(xiàng):

     -class            監(jiān)視類(lèi)load/unload數(shù)量、總空間已經(jīng)裝載時(shí)間;

     -compiler         輸出JIT編譯器編譯過(guò)的方法、耗時(shí)等信息;

     -printcompilation 輸出已經(jīng)被JIT編譯的方法;

     -gc               監(jiān)視java堆狀況;

     -gccapacity       監(jiān)視內(nèi)容與-gc基本相同,但輸出關(guān)注java各個(gè)區(qū)域的最大/最小空間;

     -gcutil           監(jiān)視內(nèi)容與-gc基本相同,但輸出關(guān)注已使用空間占用百分百比;

     -gccause          與-gcutil功能一樣,額外輸出導(dǎo)致上一次GC產(chǎn)生原因;

     -gcnew            監(jiān)視新生代GC狀況;

     -gcnewcapacity    監(jiān)視新生代,輸出同-gccapacity;

     -gcold            監(jiān)視老年代GC狀況;

     -gcoldcapacity    監(jiān)視老年代,輸出同-gccapacity;

     -gcpermcapactiy   監(jiān)視永久代(代碼區(qū)),輸出同-gccapacity;

jstat命令樣例:

[root@localhost ~]# jstat -gc 6913
 S0C S1C S0U S1U  EC  EU  OC   OU  PC  PU YGC  YGCT FGC FGCT  GCT 
34048.0 34048.0 0.0 3217.8 272640.0 171092.7 683264.0 168910.7 46872.0 28031.2 37857 380.644 69  3.447 384.091

jinfo:Java配置信息工具

jinfo的作用是實(shí)時(shí)的查看和調(diào)整虛擬機(jī)各項(xiàng)參數(shù)。

jinfo命令格式:

jinfo [option] pid

jinfo其他常用選項(xiàng):

     -flag name=value 修改參數(shù)

     -flag name 參數(shù)參數(shù)

jinfo命令樣例:

[root@localhost ~]# jinfo 6913
Attaching to process ID 6913, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.91-b01
Java System Properties:
...

VM Flags:

-Xms1000m -Xmx1000m -Dconf=/usr/local/user_profiler/conf -Dserver.root=/usr/local/user_profiler -Dcom.sun.management.jmxremote.port=7003 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseConcMarkSweepGC

jmap:java內(nèi)存映射工具

jmap命令可以用于生產(chǎn)堆存儲(chǔ)快照(dump文件)。它還可以查下finalize隊(duì)列(自我拯救隊(duì)列)、java堆和代碼區(qū)的詳細(xì)信息。

jmap命令格式:

jmap [option] vmid

jmap其他常用選項(xiàng):

     -dump          生成java堆存儲(chǔ)快照。格式:-dump:[live,]format=b,file=<filename>;

     -finalizerinfo 顯示F-Queue中等待Finalizer現(xiàn)象執(zhí)行finalize方法的對(duì)象;

     -heap          顯示java堆詳細(xì)信息,如使用哪種回收器、參數(shù)配置、分代狀況等待;

     -histo         顯示堆中對(duì)象統(tǒng)計(jì)信息,包括類(lèi)、實(shí)例書(shū)、合計(jì)容量;

     -permstat      以ClassLoader為統(tǒng)計(jì)入口顯示永久代內(nèi)存信息;

     -F             當(dāng)虛擬機(jī)進(jìn)程堆-dump選項(xiàng)沒(méi)有響應(yīng)時(shí)候,可以使用這個(gè)選項(xiàng)強(qiáng)制生成dump快照。

jmap命令樣例:

[root@localhost ~]# jmap -histo 6913|head -20

 num  #instances   #bytes class name
----------------------------------------------
 1:  1864966  113459432 [C
 2:  201846  49201192 [B
 3:  1597065  38329560 java.lang.String
 4:  117477  15037056 org.zhangyoubao.thriftdef.UserUsefulInfo
 5:   47104  11072048 [I
 6:  268631  8596192 java.util.HashMap$Entry
 7:   48812  7451760 <constMethodKlass>
 8:  100683  6443712 com.mysql.jdbc.ConnectionPropertiesImpl$BooleanConnectionProperty
 9:   48812  6257856 <methodKlass>
 10:   4230  5271640 <constantPoolKlass>
 11:  159491  5103712 java.util.Hashtable$Entry
 12:  120226  4809040 org.zhangyoubao.common.cache.adv.Node
 13:  127027  4064864 java.util.concurrent.ConcurrentHashMap$HashEntry
 14:  230433  3686928 java.lang.Integer
 15:   3765  3049824 <constantPoolCacheKlass>
 16:   20917  3012048 com.mysql.jdbc.Field
 17:   4230  2943840 <instanceKlassKlass>

其中[C=char[],[B=byte[],[S=short[],[I=int[],[[I=int[][]

jhat: 虛擬機(jī)堆轉(zhuǎn)存快照分析工具

jhat 命令用于與jmap搭配使用,用來(lái)分析jmap生成的dump文件。jhat內(nèi)置了一個(gè)微型的HTTP/HTML服務(wù)器,生成的dump文件的分析結(jié)果后,可以在瀏覽器查看。

jhat命令格式:

jmap filename

jhat命令樣例:

[root@localhost ~]# jhat html_intercept_server.dump 
Reading from html_intercept_server.dump...
Dump file created Wed Nov 23 13:05:33 CST 2016
Snapshot read, resolving...
Resolving 203681 objects...
Chasing references, expect 40 dots........................................
Eliminating duplicate references........................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.

jstack:java線(xiàn)程堆棧跟蹤工具

jstack用于生成虛擬機(jī)當(dāng)前時(shí)刻的線(xiàn)程快照。線(xiàn)程快照就是當(dāng)前虛擬機(jī)每一條線(xiàn)程正在執(zhí)行的方法堆棧計(jì)劃,生成線(xiàn)程快照的主要目的是定位線(xiàn)程長(zhǎng)時(shí)間停頓的原因。在線(xiàn)程停頓的時(shí)候,通過(guò)jstack來(lái)查看沒(méi)有響應(yīng)的線(xiàn)程在后臺(tái)做些什么事情,或者等待著什么資源。

jstack命令格式:

jstack [option] vmid

jstack其他選項(xiàng):

     -F 當(dāng)正常輸出的請(qǐng)求不被響應(yīng)的時(shí)候,強(qiáng)制輸出線(xiàn)程堆棧;

     -l 除了顯示堆棧外,顯示關(guān)于鎖的附加信息;

     -m 如果調(diào)用本地方法,可以顯示C/C++的堆棧。

jstack命令樣例:

[root@localhost ~]# jstack 29577|head -20
2016-11-23 12:58:23
Full thread dump OpenJDK Server VM (24.91-b01 mixed mode):

"pool-1-thread-7261" prio=10 tid=0x0893a400 nid=0x6b0d waiting on condition [0x652ad000]
 java.lang.Thread.State: TIMED_WAITING (parking)
  at sun.misc.Unsafe.park(Native Method)
  - parking to wait for <0x75b5b400> (a java.util.concurrent.SynchronousQueue$TransferStack)
  at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
  at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
  at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
  at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
  at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  at java.lang.Thread.run(Thread.java:745)

"service_hot_lscs-0" daemon prio=10 tid=0x6982dc00 nid=0x6aeb waiting on condition [0x64ce1000]
 java.lang.Thread.State: TIMED_WAITING (sleeping)
  at java.lang.Thread.sleep(Native Method)
  at org.zhangyoubao.video.client.runner.SimpleVideoRunner.doWork(SimpleVideoRunner.java:150)

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。

相關(guān)文章

  • springboot redis使用lettuce配置多數(shù)據(jù)源的實(shí)現(xiàn)

    springboot redis使用lettuce配置多數(shù)據(jù)源的實(shí)現(xiàn)

    這篇文章主要介紹了springboot redis使用lettuce配置多數(shù)據(jù)源的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java基礎(chǔ)篇_有關(guān)接口和抽象類(lèi)的幾道練習(xí)題(分享)

    Java基礎(chǔ)篇_有關(guān)接口和抽象類(lèi)的幾道練習(xí)題(分享)

    下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)篇_有關(guān)接口和抽象類(lèi)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • gradle項(xiàng)目中資源文件的相對(duì)路徑打包技巧必看

    gradle項(xiàng)目中資源文件的相對(duì)路徑打包技巧必看

    這篇文章主要介紹了gradle項(xiàng)目中資源文件的相對(duì)路徑打包技巧必看篇,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Spring的Bean容器介紹

    Spring的Bean容器介紹

    今天小編就為大家分享一篇關(guān)于Spring的Bean容器介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • SpringBoot啟動(dòng)失敗的解決方法:A component required a bean of type ‘xxxxxxx‘ that could not be found.

    SpringBoot啟動(dòng)失敗的解決方法:A component required a&nb

    這篇文章主要介紹了解決SpringBoot啟動(dòng)失?。篈 component required a bean of type ‘xxxxxxx‘ that could not be found.,目前解決方法有兩種,一種是不注入bean的方式,另一種是使用@Component的方式,本文給大家詳細(xì)講解,需要的朋友可以參考下
    2023-02-02
  • Mybatis實(shí)現(xiàn)增刪改查及分頁(yè)查詢(xún)的方法

    Mybatis實(shí)現(xiàn)增刪改查及分頁(yè)查詢(xún)的方法

    MyBatis是支持普通SQL查詢(xún),存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持 久層框架,通過(guò)本文給大家介紹Mybatis實(shí)現(xiàn)增刪改查及分頁(yè)查詢(xún)的方法,感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • IDEA打包的兩種方式及注意事項(xiàng)說(shuō)明

    IDEA打包的兩種方式及注意事項(xiàng)說(shuō)明

    這篇文章主要介紹了IDEA打包的兩種方式及注意事項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • springboot vue項(xiàng)目后端列表接口分頁(yè)模糊查詢(xún)

    springboot vue項(xiàng)目后端列表接口分頁(yè)模糊查詢(xún)

    這篇文章主要為大家介紹了springboot vue項(xiàng)目后端列表接口分頁(yè)模糊查詢(xún),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • java解析xml之dom4j解析xml示例分享

    java解析xml之dom4j解析xml示例分享

    DOM4J具有性能優(yōu)異、功能強(qiáng)大和極端易用使用的特點(diǎn),只要懂得DOM基本概念,就可以通過(guò)dom4j的api文檔來(lái)解析xml,dom4j是一套開(kāi)源的api。實(shí)際項(xiàng)目中,往往選擇dom4j來(lái)作為解析xml的利器
    2014-01-01
  • 重學(xué)SpringBoot3之如何發(fā)送Email郵件功能

    重學(xué)SpringBoot3之如何發(fā)送Email郵件功能

    這篇文章主要給大家介紹了重學(xué)SpringBoot3之如何發(fā)送Email郵件功能的相關(guān)資料,文中包括環(huán)境準(zhǔn)備、項(xiàng)目配置、代碼實(shí)現(xiàn)、最佳實(shí)踐和安全性建議,通過(guò)采用異步發(fā)送、重試機(jī)制、限流等最佳實(shí)踐,可以構(gòu)建一個(gè)健壯的郵件發(fā)送系統(tǒng),需要的朋友可以參考下
    2024-11-11

最新評(píng)論

德清县| 贵溪市| 囊谦县| 盐源县| 扬中市| 和政县| 九龙县| 玉林市| 始兴县| 内乡县| 泰宁县| 巍山| 永川市| 哈密市| 河间市| 错那县| 孟连| 江陵县| 深州市| 楚雄市| 泗阳县| 甘德县| 屏山县| 铜山县| 聂拉木县| 托克逊县| 常宁市| 北碚区| 江北区| 手游| 正阳县| 高尔夫| 阜宁县| 宜宾县| 苏尼特右旗| 新巴尔虎左旗| 山东| 阜阳市| 东安县| 黄陵县| 镇平县|