<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java問題排查常見指令:jps、jstack

      學習自:

      jstat命令總結[通俗易懂]-騰訊云開發者社區-騰訊云

       JVM內存分析工具 jps、jstack、jstat、jmap、jhat 的使用 - 謝端陽 - 博客園

      (99+ 封私信 / 81 條消息) JVM性能調優監控工具jps、jstack、jmap、jhat、jstat使用詳解 - 知乎

      1、簡介

      在JAVA應用的開發和運維過程中,時常需要監控JVM的運行狀態,常用的監控工具有:jps、jstat、jmap、jstack、jinfo。

      2、jps

      說明

      jps由jdk1.5以上提供,用于查看當前用戶下的java進程的pid及基本信息。

      用法

      jps 參數 hostid

      如果hostid不指定,默認為當前服務器

      參數

        -q:極簡輸出,只輸出pid

        -m:輸出傳入main方法的參數

        -l:輸出完整的main類或jar名(如果是本地jar包,就從根目錄開始,例如/data/apps/test.jar;如果是子類,就從最開始的父類開始,例如sun.tools.jps.jps)

        -v:輸出傳入JVM的參數

      例子

      -m:輸入main方法、指令的參數

      -l:輸出全名

      root@ubuntu:/# jps -m -l
      2458 org.artifactory.standalone.main.Main /usr/local/artifactory-2.2.5/etc/jetty.xml
      29920 com.sun.tools.hat.Main -port 9998 /tmp/dump.dat
      3149 org.apache.catalina.startup.Bootstrap start

       

      3、jstack

      學習自:Java程序員必備:jstack命令解析jstack是JVM自帶的Java堆棧跟蹤工具,它用于打印出給定的java進程I - 掘金

      1)說明

      jstack用于查看某個Java進程內的線程堆棧信息

      根據堆棧信息可以定位到具體代碼,因此它在JVM性能調優中用的非常多。

      2)用法

      jstack 參數 pid

      3)參數

        -l打印出額外的的信息,在死鎖發生時可以用jstack -l pid來觀察鎖的持有情況

        -m:不僅會輸出Java堆棧信息,還會輸出C/C++堆棧信息(本地方法)

      4)線程狀態

      由于jstack跟線程狀態息息相關,所以需要先對線程狀態有所了解。

      Java的6種線程池狀態:

        New:創建后尚未啟動的線程,不會出現在dump中;

        RUNNABLE:包含RUNNING、READY。線程調用start()方法付時會進入該狀態,代表一種在JVM中執行的狀態。

        WAITING:無限等待另一個線程的特定操作

        TIMED_WAITING:有限等待另一個線程的特定操作

        BLOCKED:阻塞,在線程進入同步區域時,線程將處于這種狀態,在等待monitor鎖

        TERMINATED:終止,線程結束執行。

      Dump文件的線程狀態(只有3種):

        RUNNABLE:執行中

        BLOCKED:阻塞

        WAITING:線程正在等待

      例子

      從某個Java進程中找到最耗費CPU的Java線程并定位堆棧信息:

      ①找出Java進程的PID:jps

      jps -l

      21340 /data/apps/service.jar

      ②找出該進程中最耗CPU的線程:top

      top -Hp 21340

      默認排序是按照%CPU這一列由高到低排的,從上文中可以直觀看出pid為21350的Java線程占用了最高的CPU資源:

      printf "%x\n" 21350

      得到21742的十六進制值為5366。

      ③輸出進程堆棧信息:jstack

      輸出進程堆棧信息,并根據之前查到的線程21742的十六進制值5366進行專門抓取:

      jstack 21340 | grep 5366

       

       ④輸出堆棧信息到文件

      這一項非必須,只是問題恢復后的分析可能需要場景還原,因此記錄當時的堆棧狀態通常很有必要。

      jstack -l pid > /tmp/log.txt

      之后就可以根據括號中的內容排查CPU占用最高的是哪個Java類的哪個方法了,比如上文就是JstackCPUCase.java的24行的JstackCPUCase$Task.run()方法。

      有時也可以隔段時間再執行一次jstack命令,將兩次的dump結果進行對比。

       

      如果出現鎖等待情況,會在輸出結果中顯示為parking to wait for <0x000000000d6eb8300>這樣的內容。

      posted @ 2025-07-17 15:40  ShineLe  閱讀(54)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲色大成网站www永久一区| 国产成人精品1024免费下载| 欧美肥老太牲交大战| 五月天国产成人av免费观看| 宅男久久精品国产亚洲av麻豆| 欧美变态另类牲交| 国产女人和拘做受视频免费| 98日韩精品人妻一二区| 日韩激情一区二区三区| 啦啦啦视频在线日韩精品| 亚洲国产在一区二区三区| 久久综合狠狠综合久久| 精品国产污污免费网站入口| 国产精品美女黑丝流水| 久久人体视频| 班戈县| 九九热免费精品在线视频| 日韩中文字幕人妻精品| 婷婷六月综合缴情在线| 天天澡天天揉揉av无码| 久久精品国产亚洲av麻豆小说| 日本美女性亚洲精品黄色| 最新国产AV最新国产在钱| 亚洲男女羞羞无遮挡久久丫| 日韩AV高清在线看片| 一区二区三区av在线观看| 人妻少妇精品无码专区| 久久人人爽人人爽人人片av| 国产精品播放一区二区三区| 日韩高清国产中文字幕| 综合激情亚洲丁香社区| 干老熟女干老穴干老女人| 亚洲男人的天堂久久香蕉| 一区二区在线观看 激情| 亚洲av日韩av综合在线观看| 人妻蜜臀久久av不卡| 国产绿帽在线视频看| 精品国产福利久久久| 人妻聚色窝窝人体WWW一区 | 国产在线精品一区二区夜色| 老鸭窝在钱视频|