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

JVM虛擬機性能監(jiān)控與故障處理工具介紹

 更新時間:2023年07月23日 11:28:33   作者:zero  
這篇文章主要為大家介紹了JVM虛擬機性能監(jiān)控與故障處理工具介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

定位線上問題時,知識和經(jīng)驗是關鍵基礎,數(shù)據(jù)是依據(jù),數(shù)據(jù)包括運行日志,異常堆棧,GC日志,線程快照(threaddump/javacore文件),堆轉(zhuǎn)儲快照(headdump/hprof文件)等

JDK監(jiān)控和故障處理工具

命令作用
jps顯示指定系統(tǒng)內(nèi)所有HotSpot虛擬機進程
jstat收集HotSpot虛擬機各方面運行數(shù)據(jù)
jinfo顯示虛擬機配置信息
jmap生成虛擬機的內(nèi)部轉(zhuǎn)儲快照(heapdump文件)
jhat分析heapdump文件
jstack顯示虛擬機線程快照

jps:虛擬機進程狀況工具

顯示指定系統(tǒng)內(nèi)所有HotSpot虛擬機進程

常用選項

選項作用
-q只輸出LVMID
-m輸出虛擬機啟動時傳遞給主類main函數(shù)的參數(shù)
-l輸出主類全名
-v顯示虛擬機啟動時的JVM參數(shù)
[oracle@wcdev ~]$ jps
20560 Server
24748 Rcu
17387 Server
14824 Jps
20635 Server
27844 Server
10658 Server
5713 Server
10738 Server
6594 NodeManager
10705 Server
29681 Server
[oracle@wcdev ~]$

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

收集HotSpot虛擬機各方面運行數(shù)據(jù)

常用選項

選項作用
-class監(jiān)視類裝載,卸載數(shù)量,總空間以及類裝載所耗費的時間
-gc監(jiān)視JAVA堆狀況,包括Eden區(qū),兩個survivor區(qū),老年代,永久代等

查詢進程20560的信息,1000毫秒一次,執(zhí)行10次

[oracle@wcdev ~]$ jstat -gc 20560 1000 10
HeapSize NurserySize UsedHeapSize   YC     OC    YCTime   OCTime   GCTime  YCPauseTime OCPauseTime PauseTime
4194304.0   1528649.8    1132960.1   2735    501  309.990  173.831  483.821     310.056     173.843   483.899
4194304.0   1528649.8    1132960.1   2735    501  309.990  173.831  483.821     310.056     173.843   483.899
4194304.0   1528649.8    1132960.1   2735    501  309.990  173.831  483.821     310.056     173.843   483.899
4194304.0   1528649.8    1132960.1   2735    501  309.990  173.831  483.821     310.056     173.843   483.899
4194304.0   1528649.8    1132960.1   2735    501  309.990  173.831  483.821     310.056     173.843   483.899
4194304.0   1528649.8    1132960.1   2735    501  309.990  173.831  483.821     310.056     173.843   483.899
4194304.0   1528649.8    1132960.1   2735    501  309.990  173.831  483.821     310.056     173.843   483.899
4194304.0   1528649.8    1132960.1   2735    501  309.990  173.831  483.821     310.056     173.843   483.899
4194304.0   1528649.8    1132960.1   2735    501  309.990  173.831  483.821     310.056     173.843   483.899
4194304.0   1528649.8    1132960.1   2735    501  309.990  173.831  483.821     310.056     173.843   483.899
[oracle@wcdev ~]$

jinfo:JAVA配置信息工具

jinfo可以查看和調(diào)整虛擬機各項參數(shù),使用 jinfo 可以在不重啟虛擬機的情況下,可以動態(tài)的修改 jvm 的參數(shù)

常用選項

選項作用
-flag輸出對應名稱的參數(shù)
-flag [+/-]name開啟或者關閉對應名稱的參數(shù)

jinfo pid

C:\Users\zero>jps -l
12080 com.example.offer.leecode.t20201015.CanJump
16112 sun.tools.jps.Jps
6292 org.jetbrains.idea.maven.server.RemoteMavenServer36
12940 org.jetbrains.kotlin.daemon.KotlinCompileDaemon
16284 org.jetbrains.jps.cmdline.Launcher
17388

C:\Users\zero>jinfo 12080
Attaching to process ID 12080, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.102-b14
Java System Properties:

java.runtime.name = Java(TM) SE Runtime Environment
java.vm.version = 25.102-b14
sun.boot.library.path = C:\Program Files\Java\Java1.8.1\jre\bin
java.vendor.url = http://java.oracle.com/
java.vm.vendor = Oracle Corporation
path.separator = ;
file.encoding.pkg = sun.io
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
sun.os.patch.level =
sun.java.launcher = SUN_STANDARD
user.script =
user.country = CN
user.dir = F:\GitCode\zero\TestExcel
java.vm.specification.name = Java Virtual Machine Specification
java.runtime.version = 1.8.0_102-b14
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
os.arch = amd64
java.endorsed.dirs = C:\Program Files\Java\Java1.8.1\jre\lib\endorsed
line.separator =

java.io.tmpdir = C:\Users\zero\AppData\Local\Temp\
java.vm.specification.vendor = Oracle Corporation
user.variant =
os.name = Windows 10
sun.jnu.encoding = GBK
java.library.path = C:\Program Files\Java\Java1.8.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;F:\oracleExe\app\oracle\product\11.2.0\server\bin;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Java\Java1.8.1\bin;C:\Program Files\TortoiseSVN\bin;F:\APP;F:\Git\Git\cmd;C:\Program Files\Redis\;F:\NvmFolder\nvm;F:\NvmFolder\nodejs;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;F:\Microsoft VS Code\Microsoft VS Code\bin;F:\Idea\IntelliJ IDEA 2017.1.1\plugins\maven\lib\maven3\bin;C:\Program Files\gradle\gradle-4.6\bin;F:\NvmFolder\nvm;F:\NvmFolder\nodejs;C:\Users\zero\AppData\Local\BypassRuntm;F:\NvmFolder\nvm;F:\NvmFolder\nodejs;F:\JetBrains\IntelliJ IDEA 2019.2.1\plugins\maven\lib\maven3\bin;.
java.specification.name = Java Platform API Specification
java.class.version = 52.0
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
os.version = 10.0
user.home = C:\Users\zero
user.timezone = Asia/Shanghai
java.awt.printerjob = sun.awt.windows.WPrinterJob
file.encoding = UTF-8
java.specification.version = 1.8
user.name = zero
java.class.path = C:\Program Files\Java\Java1.8.1\jre\lib\charsets.jar;C:\Program Files\Java\Java1.8.1\jre\lib\deploy.jar;C:\Program Files\Java\Java1.8.1\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\Java1.8.1\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\Java1.8.1\jre\lib\ext\dnsns.jar;C:\Program Files\Java\Java1.8.1\jre\lib\ext\jaccess.jar;C:\Program Files\Java\Java1.8.1\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\Java1.8.1\jre\lib\ext\localedata.jar;C:\Program Files\Java\Java1.8.1\jre\lib\ext\nashorn.jar;C:\Program Files\Java\Java1.8.1\jre\lib\ext\sunec.jar;C:\Program Files\Java\Java1.8.1\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\Java1.8.1\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\Java1.8.1\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\Java1.8.1\jre\lib\ext\zipfs.jar;C:\Program Files\Java\Java1.8.1\jre\lib\javaws.jar;C:\Program Files\Java\Java1.8.1\jre\lib\jce.jar;C:\Program Files\Java\Java1.8.1\jre\lib\jfr.jar;C:\Program Files\Java\Java1.8.1\jre\lib\jfxswt.jar;C:\Program Files\Java\Java1.8.1\jre\lib\jsse.jar;C:\Program Files\Java\Java1.8.1\jre\lib\management-agent.jar;C:\Program Files\Java\Java1.8.1\jre\lib\plugin.jar;C:\Program Files\Java\Java1.8.1\jre\lib\resources.jar;C:\Program Files\Java\Java1.8.1\jre\lib\rt.jar;F:\Jclasslib\jclasslib\jclasslib\bin\jclasslib.jar;F:\GitCode\zero\TestExcel\target\classes;F:\workSpace\Maven\repository\org\springframework\boot\spring-boot-starter-web\2.2.6.RELEASE\spring-boot-starter-web-2.2.6.RELEASE.jar;F:\workSpace\Maven\repository\org\springframework\boot\spring-boot-starter\2.2.6.RELEASE\spring-boot-starter-2.2.6.RELEASE.jar;F:\workSpace\Maven\repository\org\springframework\boot\spring-boot\2.2.6.RELEASE\spring-boot-2.2.6.RELEASE.jar;F:\workSpace\Maven\repository\org\springframework\boot\spring-boot-autoconfigure\2.2.6.RELEASE\spring-boot-autoconfigure-2.2.6.RELEASE.jar;F:\workSpace\Maven\repository\org\springframework\boot\spring-boot-starter-logging\2.2.6.RELEASE\spring-boot-starter-logging-2.2.6.RELEASE.jar;F:\workSpace\Maven\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;F:\workSpace\Maven\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;F:\workSpace\Maven\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;F:\workSpace\Maven\repository\org\apache\logging\log4j\log4j-to-slf4j\2.12.1\log4j-to-slf4j-2.12.1.jar;F:\workSpace\Maven\repository\org\apache\logging\log4j\log4j-api\2.12.1\log4j-api-2.12.1.jar;F:\workSpace\Maven\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;F:\workSpace\Maven\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;F:\workSpace\Maven\repository\org\springframework\spring-core\5.2.5.RELEASE\spring-core-5.2.5.RELEASE.jar;F:\workSpace\Maven\repository\org\springframework\spring-jcl\5.2.5.RELEASE\spring-jcl-5.2.5.RELEASE.jar;F:\workSpace\Maven\repository\org\yaml\snakeyaml\1.25\snakeyaml-1.25.jar;F:\workSpace\Maven\repository\org\springframework\boot\spring-boot-starter-json\2.2.6.RELEASE\spring-boot-starter-json-2.2.6.RELEASE.jar;F:\workSpace\Maven\repository\com\fasterxml\jackson\core\jackson-databind\2.10.3\jackson-databind-2.10.3.jar;F:\workSpace\Maven\repository\com\fasterxml\jackson\core\jackson-annotations\2.10.3\jackson-annotations-2.10.3.jar;F:\workSpace\Maven\repository\com\fasterxml\jackson\core\jackson-core\2.10.3\jackson-core-2.10.3.jar;F:\workSpace\Maven\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.10.3\jackson-datatype-jdk8-2.10.3.jar;F:\workSpace\Maven\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.10.3\jackson-datatype-jsr310-2.10.3.jar;F:\workSpace\Maven\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.10.3\jackson-module-parameter-names-2.10.3.jar;F:\workSpace\Maven\repository\org\springframework\boot\spring-boot-starter-tomcat\2.2.6.RELEASE\spring-boot-starter-tomcat-2.2.6.RELEASE.jar;F:\workSpace\Maven\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.33\tomcat-embed-core-9.0.33.jar;F:\workSpace\Maven\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.33\tomcat-embed-el-9.0.33.jar;F:\workSpace\Maven\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.33\tomcat-embed-websocket-9.0.33.jar;F:\workSpace\Maven\repository\org\springframework\boot\spring-boot-starter-validation\2.2.6.RELEASE\spring-boot-starter-validation-2.2.6.RELEASE.jar;F:\workSpace\Maven\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;F:\workSpace\Maven\repository\org\hibernate\validator\hibernate-validator\6.0.18.Final\hibernate-validator-6.0.18.Final.jar;F:\workSpace\Maven\repository\org\jboss\logging\jboss-logging\3.4.1.Final\jboss-logging-3.4.1.Final.jar;F:\workSpace\Maven\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;F:\workSpace\Maven\repository\org\springframework\spring-web\5.2.5.RELEASE\spring-web-5.2.5.RELEASE.jar;F:\workSpace\Maven\repository\org\springframework\spring-beans\5.2.5.RELEASE\spring-beans-5.2.5.RELEASE.jar;F:\workSpace\Maven\repository\org\springframework\spring-webmvc\5.2.5.RELEASE\spring-webmvc-5.2.5.RELEASE.jar;F:\workSpace\Maven\repository\org\springframework\spring-aop\5.2.5.RELEASE\spring-aop-5.2.5.RELEASE.jar;F:\workSpace\Maven\repository\org\springframework\spring-context\5.2.5.RELEASE\spring-context-5.2.5.RELEASE.jar;F:\workSpace\Maven\repository\org\springframework\spring-expression\5.2.5.RELEASE\spring-expression-5.2.5.RELEASE.jar;F:\workSpace\Maven\repository\org\apache\poi\poi-ooxml\3.10-FINAL\poi-ooxml-3.10-FINAL.jar;F:\workSpace\Maven\repository\org\apache\poi\poi\3.10-FINAL\poi-3.10-FINAL.jar;F:\workSpace\Maven\repository\commons-codec\commons-codec\1.13\commons-codec-1.13.jar;F:\workSpace\Maven\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;F:\workSpace\Maven\repository\xml-apis\xml-apis\1.0.b2\xml-apis-1.0.b2.jar;F:\workSpace\Maven\repository\org\apache\poi\poi-ooxml-schemas\3.10-FINAL\poi-ooxml-schemas-3.10-FINAL.jar;F:\workSpace\Maven\repository\org\apache\xmlbeans\xmlbeans\2.3.0\xmlbeans-2.3.0.jar;F:\workSpace\Maven\repository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;F:\workSpace\Maven\repository\com\alibaba\fastjson\1.2.53\fastjson-1.2.53.jar;F:\workSpace\Maven\repository\com\rabbitmq\amqp-client\3.4.1\amqp-client-3.4.1.jar;F:\workSpace\Maven\repository\org\json\json\20140107\json-20140107.jar;F:\workSpace\Maven\repository\junit\junit\4.12\junit-4.12.jar;F:\workSpace\Maven\repository\org\hamcrest\hamcrest-core\2.1\hamcrest-core-2.1.jar;F:\workSpace\Maven\repository\org\hamcrest\hamcrest\2.1\hamcrest-2.1.jar;F:\workSpace\Maven\repository\io\netty\netty-all\4.1.20.Final\netty-all-4.1.20.Final.jar;F:\workSpace\Maven\repository\org\msgpack\msgpack\0.6.12\msgpack-0.6.12.jar;F:\workSpace\Maven\repository\com\googlecode\json-simple\json-simple\1.1.1\json-simple-1.1.1.jar;F:\workSpace\Maven\repository\org\javassist\javassist\3.18.1-GA\javassist-3.18.1-GA.jar;F:\JetBrains\IntelliJ IDEA 2019.2.1\lib\idea_rt.jar
java.vm.specification.version = 1.8
sun.arch.data.model = 64
sun.java.command = com.example.offer.leecode.t20201015.CanJump
java.home = C:\Program Files\Java\Java1.8.1\jre
user.language = zh
java.specification.vendor = Oracle Corporation
awt.toolkit = sun.awt.windows.WToolkit
java.vm.info = mixed mode
java.version = 1.8.0_102
java.ext.dirs = C:\Program Files\Java\Java1.8.1\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
sun.boot.class.path = C:\Program Files\Java\Java1.8.1\jre\lib\resources.jar;C:\Program Files\Java\Java1.8.1\jre\lib\rt.jar;C:\Program Files\Java\Java1.8.1\jre\lib\sunrsasign.jar;C:\Program Files\Java\Java1.8.1\jre\lib\jsse.jar;C:\Program Files\Java\Java1.8.1\jre\lib\jce.jar;C:\Program Files\Java\Java1.8.1\jre\lib\charsets.jar;C:\Program Files\Java\Java1.8.1\jre\lib\jfr.jar;C:\Program Files\Java\Java1.8.1\jre\classes
java.vendor = Oracle Corporation
file.separator = \
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
sun.desktop = windows
sun.cpu.isalist = amd64

VM Flags:
Non-default VM flags: -XX:CICompilerCount=4 -XX:InitialHeapSize=268435456 -XX:MaxHeapSize=4273995776 -XX:MaxNewSize=1424490496 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=89128960 -XX:OldSize=179306496 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
Command line:  -javaagent:F:\JetBrains\IntelliJ IDEA 2019.2.1\lib\idea_rt.jar=55312:F:\JetBrains\IntelliJ IDEA 2019.2.1\bin -Dfile.encoding=UTF-8


C:\Users\zero>

jinfo -flag name pid

查看指定JVM參數(shù)的值

C:\Users\zero>jinfo -flag InitialHeapSize 6880
-XX:InitialHeapSize=268435456

jinfo -flag [+|-]name pid

動態(tài)修改JVM參數(shù)的值

C:\Users\zero>jinfo -flag +PrintGC 8932

C:\Users\zero>jinfo -flag PrintGC 8932
-XX:+PrintGC

C:\Users\zero>jinfo -flag -PrintGC 8932

C:\Users\zero>jinfo -flag PrintGC 8932
-XX:-PrintGC

C:\Users\zero>

jmap:JAVA內(nèi)存映像工具

jmap用于生成堆轉(zhuǎn)儲快照(heapdump或dump文件)

生成dump文件的方法,設置虛擬機參數(shù),讓虛擬機在OOM異常后自動生成dump文件,或者kill -3 dip,或者使用jmap獲取,但是使用jmap命令會造成服務器停用,影響可能會很嚴重

#出現(xiàn) OOME 時生成堆 dump: 
-XX:+HeapDumpOnOutOfMemoryError
#生成堆文件地址:
-XX:HeapDumpPath=/home/liuke/jvmlogs/

常用選項

選項作用
-dump生成JAVA堆轉(zhuǎn)儲快照
-heap顯示JAVA堆詳細信息

使用jmap生成dump文件

C:\Users\zero>jmap -dump:format=b,file=work 5892
Dumping heap to C:\Users\zero\work ...
Heap dump file created

危險操作

最主要的危險操作是下面這三種:

  • jmap -dump
    這個命令執(zhí)行,JVM會將整個heap的信息dump寫入到一個文件,heap如果比較大的話,就會導致這個過程比較耗時,并且執(zhí)行的過程中為了保證dump的信息是可靠的,所以會暫停應用。
  • jmap -permstat
    這個命令執(zhí)行,JVM會去統(tǒng)計perm區(qū)的狀況,這整個過程也會比較的耗時,并且同樣也會暫停應用。
  • jmap -histo:live
    這個命令執(zhí)行,JVM會先觸發(fā)gc,然后再統(tǒng)計信息。

jstack:JAVA堆棧跟蹤工具

jstack命令用于生成虛擬機當前時刻的線程快照(threaddump或者javacore文件)

常用選項

選項作用
-l除堆棧外,顯示有關鎖的附加信息
-m調(diào)用本地方法的話,可以顯示C/C++的堆棧

使用jstack查看線程堆棧

C:\Users\zero>jstack 14024
2020-10-21 22:06:55
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.102-b14 mixed mode):
"Service Thread" #11 daemon prio=9 os_prio=0 tid=0x000000001f982800 nid=0x3c2c runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
"C1 CompilerThread3" #10 daemon prio=9 os_prio=2 tid=0x000000001f0e9800 nid=0x604 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
"C2 CompilerThread2" #9 daemon prio=9 os_prio=2 tid=0x000000001f0e4800 nid=0x3b24 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" #8 daemon prio=9 os_prio=2 tid=0x000000001f0e4000 nid=0x32fc waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #7 daemon prio=9 os_prio=2 tid=0x000000001f0dd000 nid=0x428 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
"Monitor Ctrl-Break" #6 daemon prio=5 os_prio=0 tid=0x000000001f081000 nid=0x2c08 runnable [0x000000001f55e000]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
        at java.net.SocketInputStream.read(SocketInputStream.java:170)
        at java.net.SocketInputStream.read(SocketInputStream.java:141)
        at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
        at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
        - locked <0x000000076b44f888> (a java.io.InputStreamReader)
        at java.io.InputStreamReader.read(InputStreamReader.java:184)
        at java.io.BufferedReader.fill(BufferedReader.java:161)
        at java.io.BufferedReader.readLine(BufferedReader.java:324)
        - locked <0x000000076b44f888> (a java.io.InputStreamReader)
        at java.io.BufferedReader.readLine(BufferedReader.java:389)
        at com.intellij.rt.execution.application.AppMainV2$1.run(AppMainV2.java:64)
"Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x000000001edf1800 nid=0x10c4 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x000000001ed9d000 nid=0x1d14 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
"Finalizer" #3 daemon prio=8 os_prio=1 tid=0x000000001ed80800 nid=0x3c38 in Object.wait() [0x000000001f25f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x000000076b188e98> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
        - locked <0x000000076b188e98> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
"Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x000000000340c000 nid=0x3500 in Object.wait() [0x000000001ed5f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x000000076b186b40> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:502)
        at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
        - locked <0x000000076b186b40> (a java.lang.ref.Reference$Lock)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
"main" #1 prio=5 os_prio=0 tid=0x0000000003314800 nid=0x3fa8 waiting on condition [0x000000000309f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at com.example.offer.leecode.t20201015.CanJump.main(CanJump.java:57)
"VM Thread" os_prio=2 tid=0x000000001ce69800 nid=0x1f18 runnable
"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x000000000332a800 nid=0x2b64 runnable
"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x000000000332c000 nid=0x514 runnable
"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x000000000332e000 nid=0x19f8 runnable
"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x0000000003330800 nid=0x2608 runnable
"GC task thread#4 (ParallelGC)" os_prio=0 tid=0x0000000003332800 nid=0x2c84 runnable
"GC task thread#5 (ParallelGC)" os_prio=0 tid=0x0000000003333800 nid=0x406c runnable
"GC task thread#6 (ParallelGC)" os_prio=0 tid=0x0000000003337000 nid=0x2c38 runnable
"GC task thread#7 (ParallelGC)" os_prio=0 tid=0x0000000003338000 nid=0x2c54 runnable
"VM Periodic Task Thread" os_prio=2 tid=0x000000001fa2c000 nid=0x21d4 waiting on condition
JNI global references: 33
C:\Users\zero>jstack -l 14024
2020-10-21 22:07:00
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.102-b14 mixed mode):
"Service Thread" #11 daemon prio=9 os_prio=0 tid=0x000000001f982800 nid=0x3c2c runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   Locked ownable synchronizers:
        - None
"C1 CompilerThread3" #10 daemon prio=9 os_prio=2 tid=0x000000001f0e9800 nid=0x604 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   Locked ownable synchronizers:
        - None
"C2 CompilerThread2" #9 daemon prio=9 os_prio=2 tid=0x000000001f0e4800 nid=0x3b24 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   Locked ownable synchronizers:
        - None
"C2 CompilerThread1" #8 daemon prio=9 os_prio=2 tid=0x000000001f0e4000 nid=0x32fc waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   Locked ownable synchronizers:
        - None
"C2 CompilerThread0" #7 daemon prio=9 os_prio=2 tid=0x000000001f0dd000 nid=0x428 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   Locked ownable synchronizers:
        - None
"Monitor Ctrl-Break" #6 daemon prio=5 os_prio=0 tid=0x000000001f081000 nid=0x2c08 runnable [0x000000001f55e000]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
        at java.net.SocketInputStream.read(SocketInputStream.java:170)
        at java.net.SocketInputStream.read(SocketInputStream.java:141)
        at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
        at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
        - locked <0x000000076b44f888> (a java.io.InputStreamReader)
        at java.io.InputStreamReader.read(InputStreamReader.java:184)
        at java.io.BufferedReader.fill(BufferedReader.java:161)
        at java.io.BufferedReader.readLine(BufferedReader.java:324)
        - locked <0x000000076b44f888> (a java.io.InputStreamReader)
        at java.io.BufferedReader.readLine(BufferedReader.java:389)
        at com.intellij.rt.execution.application.AppMainV2$1.run(AppMainV2.java:64)
   Locked ownable synchronizers:
        - None
"Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x000000001edf1800 nid=0x10c4 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   Locked ownable synchronizers:
        - None
"Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x000000001ed9d000 nid=0x1d14 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   Locked ownable synchronizers:
        - None
"Finalizer" #3 daemon prio=8 os_prio=1 tid=0x000000001ed80800 nid=0x3c38 in Object.wait() [0x000000001f25f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x000000076b188e98> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
        - locked <0x000000076b188e98> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
   Locked ownable synchronizers:
        - None
"Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x000000000340c000 nid=0x3500 in Object.wait() [0x000000001ed5f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x000000076b186b40> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:502)
        at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
        - locked <0x000000076b186b40> (a java.lang.ref.Reference$Lock)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
   Locked ownable synchronizers:
        - None
"main" #1 prio=5 os_prio=0 tid=0x0000000003314800 nid=0x3fa8 waiting on condition [0x000000000309f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at com.example.offer.leecode.t20201015.CanJump.main(CanJump.java:57)
   Locked ownable synchronizers:
        - None
"VM Thread" os_prio=2 tid=0x000000001ce69800 nid=0x1f18 runnable
"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x000000000332a800 nid=0x2b64 runnable
"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x000000000332c000 nid=0x514 runnable
"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x000000000332e000 nid=0x19f8 runnable
"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x0000000003330800 nid=0x2608 runnable
"GC task thread#4 (ParallelGC)" os_prio=0 tid=0x0000000003332800 nid=0x2c84 runnable
"GC task thread#5 (ParallelGC)" os_prio=0 tid=0x0000000003333800 nid=0x406c runnable
"GC task thread#6 (ParallelGC)" os_prio=0 tid=0x0000000003337000 nid=0x2c38 runnable
"GC task thread#7 (ParallelGC)" os_prio=0 tid=0x0000000003338000 nid=0x2c54 runnable
"VM Periodic Task Thread" os_prio=2 tid=0x000000001fa2c000 nid=0x21d4 waiting on condition
JNI global references: 33
C:\Users\zero>jstack -m 14024
Attaching to process ID 14024, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.102-b14
Deadlock Detection:
No deadlocks found.
----------------- 0 -----------------
0x00007ffb6fa55154      ntdll!ZwWaitForSingleObject + 0x14
0xec8b485741564155              ????????
sun.jvm.hotspot.debugger.DebuggerException: Windbg Error: ReadVirtual failed!
        at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.readBytesFromProcess0(Native Method)
        at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.readBytesFromProcess(WindbgDebuggerLocal.java:490)
        at sun.jvm.hotspot.debugger.DebuggerBase$Fetcher.fetchPage(DebuggerBase.java:80)
        at sun.jvm.hotspot.debugger.PageCache.getPage(PageCache.java:178)
        at sun.jvm.hotspot.debugger.PageCache.getLong(PageCache.java:100)
        at sun.jvm.hotspot.debugger.DebuggerBase.readCInteger(DebuggerBase.java:364)
        at sun.jvm.hotspot.debugger.DebuggerBase.readAddressValue(DebuggerBase.java:462)
        at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.readAddress(WindbgDebuggerLocal.java:316)
        at sun.jvm.hotspot.debugger.windbg.WindbgAddress.getAddressAt(WindbgAddress.java:72)
        at sun.jvm.hotspot.debugger.windows.amd64.WindowsAMD64CFrame.sender(WindowsAMD64CFrame.java:60)
        at sun.jvm.hotspot.tools.PStack.run(PStack.java:161)
        at sun.jvm.hotspot.tools.PStack.run(PStack.java:58)
        at sun.jvm.hotspot.tools.PStack.run(PStack.java:53)
        at sun.jvm.hotspot.tools.JStack.run(JStack.java:66)
        at sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:260)
        at sun.jvm.hotspot.tools.Tool.start(Tool.java:223)
        at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
        at sun.jvm.hotspot.tools.JStack.main(JStack.java:92)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sun.tools.jstack.JStack.runJStackTool(JStack.java:140)
        at sun.tools.jstack.JStack.main(JStack.java:106)
----------------- 1 -----------------
----------------- 2 -----------------
----------------- 3 -----------------
0x00007ffb6fa55c24      ntdll!NtWaitForMultipleObjects + 0x14
----------------- 4 -----------------
----------------- 5 -----------------
----------------- 6 -----------------
----------------- 7 -----------------
----------------- 8 -----------------
----------------- 9 -----------------
----------------- 10 -----------------
----------------- 11 -----------------
----------------- 12 -----------------
0x00007ffb6fa55154      ntdll!ZwWaitForSingleObject + 0x14
----------------- 13 -----------------
0x00007ffb6fa55154      ntdll!ZwWaitForSingleObject + 0x14
----------------- 14 -----------------
0x00007ffb6fa55154      ntdll!ZwWaitForSingleObject + 0x14
----------------- 15 -----------------
0x00007ffb6fa55154      ntdll!ZwWaitForSingleObject + 0x14
----------------- 16 -----------------
0x00007ffb6fa55154      ntdll!ZwWaitForSingleObject + 0x14
----------------- 17 -----------------
0x00007ffb6fa55154      ntdll!ZwWaitForSingleObject + 0x14
----------------- 18 -----------------
0x00007ffb6fa55154      ntdll!ZwWaitForSingleObject + 0x14
----------------- 19 -----------------
0x00007ffb6fa55154      ntdll!ZwWaitForSingleObject + 0x14
----------------- 20 -----------------
0x00007ffb6fa55154      ntdll!ZwWaitForSingleObject + 0x14
----------------- 21 -----------------
0x00007ffb6fa55154      ntdll!ZwWaitForSingleObject + 0x14
----------------- 22 -----------------
----------------- 23 -----------------
0x00007ffb6fa55154      ntdll!ZwWaitForSingleObject + 0x14

以上就是JVM虛擬機性能監(jiān)控與故障處理工具介紹的詳細內(nèi)容,更多關于JVM 性能監(jiān)控故障處理工具的資料請關注腳本之家其它相關文章!

相關文章

  • Quartz與Spring集成的兩種方法示例

    Quartz與Spring集成的兩種方法示例

    這篇文章主要為大家介紹了Quartz與Spring集成的兩種方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • Linux中Elasticsearch的安裝詳細步驟

    Linux中Elasticsearch的安裝詳細步驟

    這篇文章主要介紹了Linux中Elasticsearch的安裝詳細步驟,Elasticsearch(ES)是一種分布式、可擴展的搜索和分析引擎,基于Lucene構(gòu)建,它支持實時數(shù)據(jù)處理、全文搜索、實時分析等多種功能,需要的朋友可以參考下
    2024-12-12
  • idea同步y(tǒng)api插件的詳細步驟

    idea同步y(tǒng)api插件的詳細步驟

    yapi是一個很好的接口文檔維護工具,其swagger功能,可將接口信息同步到y(tǒng)api平臺上,這篇文章主要介紹了idea同步y(tǒng)api插件,需要的朋友可以參考下
    2024-04-04
  • Java虛擬機(JVM)的自帶工具使用詳解

    Java虛擬機(JVM)的自帶工具使用詳解

    文章介紹了Java開發(fā)中常用的幾個工具及其基本用法,包括jps、jstat、jinfo、jmap、jhat和jstack,這些工具幫助開發(fā)者監(jiān)控和分析Java應用程序的性能和內(nèi)存使用情況,對于排查問題和優(yōu)化性能非常有幫助
    2026-01-01
  • 使用res:bean屬性復制避免null值覆蓋版本

    使用res:bean屬性復制避免null值覆蓋版本

    這篇文章主要介紹了使用res:bean屬性復制避免null值覆蓋版本的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring Boot啟動及退出加載項的方法

    Spring Boot啟動及退出加載項的方法

    這篇文章主要介紹了Spring Boot啟動及退出加載項的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • SpringBoot啟動時自動執(zhí)行sql腳本的方法步驟

    SpringBoot啟動時自動執(zhí)行sql腳本的方法步驟

    本文主要介紹了SpringBoot啟動時自動執(zhí)行sql腳本的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 基于idea 的 Java中的get/set方法之優(yōu)雅的寫法

    基于idea 的 Java中的get/set方法之優(yōu)雅的寫法

    這篇文章主要介紹了基于idea 的 Java中的get/set方法之優(yōu)雅的寫法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 淺談HashMap、HashTable的key和value是否可為null

    淺談HashMap、HashTable的key和value是否可為null

    這篇文章主要介紹了淺談HashMap、HashTable的key和value是否可為null,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • DTO 實現(xiàn) service 和 controller 之間值傳遞的操作

    DTO 實現(xiàn) service 和 controller 之間值傳遞的操作

    這篇文章主要介紹了DTO 實現(xiàn) service 和 controller 之間值傳遞的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評論

禹城市| 灌云县| 开江县| 二手房| 铜陵市| 荔浦县| 宣城市| 永新县| 克东县| 驻马店市| 嵊泗县| 樟树市| 堆龙德庆县| 阳西县| 东宁县| 清水县| 灵川县| 苗栗县| 阳曲县| 阿坝| 大同市| 敦煌市| 城市| 汕头市| 阳城县| 滕州市| 疏附县| 剑川县| 香河县| 武夷山市| 卓资县| 石河子市| 金阳县| 涿鹿县| 新乐市| 九寨沟县| 勐海县| 漠河县| 湘西| 灌云县| 开鲁县|