国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

java虛擬機(jī)故障處理工具

loonggg / 1859人閱讀

摘要:這些工具包括名稱(chēng)主要作用顯示指定系統(tǒng)內(nèi)所有的虛擬機(jī)進(jìn)程。虛擬機(jī)堆轉(zhuǎn)存快照分析工具命令用于與搭配使用,用來(lái)分析生成的文件。命令格式命令樣例線(xiàn)程堆棧跟蹤工具用于生成虛擬機(jī)當(dāng)前時(shí)刻的線(xiàn)程快照。

概述

給系統(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ī)和故障處理的工具。這些工具包括:

名稱(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=;
-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  
   8:        100683        6443712  com.mysql.jdbc.ConnectionPropertiesImpl$BooleanConnectionProperty
   9:         48812        6257856  
  10:          4230        5271640  
  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  
  16:         20917        3012048  com.mysql.jdbc.Field
  17:          4230        2943840  

其中[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)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/69845.html

相關(guān)文章

  • 深入理解虛擬機(jī)虛擬機(jī)性能監(jiān)控和故障處理工具

    摘要:監(jiān)控和故障處理工具顯示指定系統(tǒng)內(nèi)所有的虛擬機(jī)進(jìn)程用于收集虛擬機(jī)各方面的運(yùn)行數(shù)據(jù)。的常用功能選項(xiàng)測(cè)試上面輸出了我正在運(yùn)行程序的包名下的類(lèi)名虛擬機(jī)統(tǒng)計(jì)信息監(jiān)視工具使用于監(jiān)視虛擬機(jī)各種運(yùn)行狀態(tài)信息的命令行工具。 《深入理解Java虛擬機(jī):JVM高級(jí)特性與最佳實(shí)踐(第二版》讀書(shū)筆記與常見(jiàn)面試題總結(jié) 本節(jié)常見(jiàn)面試題(推薦帶著問(wèn)題閱讀,問(wèn)題答案在文中都有提到): JVM調(diào)優(yōu)的常見(jiàn)命令行工具有哪些?...

    jas0n 評(píng)論0 收藏0
  • 《深入理解Java虛擬機(jī)第3版》垃圾收集器與內(nèi)存分配策略、虛擬機(jī)性能監(jiān)控故障處理工具

    摘要:目錄往期博客課堂篇初識(shí)常量池簡(jiǎn)單理解字符串常量池靜態(tài)常量池大整型常量池為什么要了解垃圾收集和內(nèi)存分配如何判斷對(duì)象已死引用計(jì)數(shù)算法可達(dá)性分析算法之后引用的擴(kuò)充回收方法區(qū)垃圾收集算法分代收集理論標(biāo)記清除標(biāo)記復(fù)制標(biāo)記整理對(duì)象分 ...

    Kerr1Gan 評(píng)論0 收藏0
  • JVM詳解3.JDK監(jiān)控和故障處理工具

    摘要:點(diǎn)擊進(jìn)入我的博客命令行工具這些工具大多數(shù)是類(lèi)庫(kù)的一層薄的包裝,它們的主要功能代碼是在類(lèi)庫(kù)中實(shí)現(xiàn)的。可視化工具是到目前為止隨發(fā)布的功能最強(qiáng)大的運(yùn)行監(jiān)視和故障處理程序,并且可以預(yù)見(jiàn)在未來(lái)一段時(shí)間內(nèi)都是官方主力發(fā)展的虛擬機(jī)故障處理工具。 點(diǎn)擊進(jìn)入我的博客 3.1 JDK命令行工具 showImg(https://segmentfault.com/img/remote/14600000174...

    Keven 評(píng)論0 收藏0
  • 《深入理解Java虛擬機(jī)》(四)虛擬機(jī)性能監(jiān)控與故障處理工具

    摘要:虛擬機(jī)性能監(jiān)控與故障處理工具詳解概述本文參考的是周志明的深入理解虛擬機(jī)第四章,為了整理思路,簡(jiǎn)單記錄一下,方便后期查閱。虛擬機(jī)堆轉(zhuǎn)儲(chǔ)快照分析工具功能用于分析生成的。 虛擬機(jī)性能監(jiān)控與故障處理工具 詳解 4.1 概述 本文參考的是周志明的 《深入理解Java虛擬機(jī)》 第四章 ,為了整理思路,簡(jiǎn)單記錄一下,方便后期查閱。 JDK本身提供了很多方便的JVM性能調(diào)優(yōu)監(jiān)控工具,除了集成式的Vis...

    gself 評(píng)論0 收藏0
  • 學(xué)習(xí)JVM必看書(shū)籍

    學(xué)習(xí)JVM的相關(guān)資料 《深入理解Java虛擬機(jī)——JVM高級(jí)特性與最佳實(shí)踐(第2版)》 showImg(https://segmentfault.com/img/bVbsqF5?w=200&h=200); 基于最新JDK1.7,圍繞內(nèi)存管理、執(zhí)行子系統(tǒng)、程序編譯與優(yōu)化、高效并發(fā)等核心主題對(duì)JVM進(jìn)行全面而深入的分析,深刻揭示JVM的工作原理。以實(shí)踐為導(dǎo)向,通過(guò)大量與實(shí)際生產(chǎn)環(huán)境相結(jié)合的案例展示了解...

    shaonbean 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<