MDA/MDD/TDD/DDD/DDDDDDD
          posts - 536, comments - 111, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          公告

          一些零碎的筆記,希望能對你有用處。


          搜索

          •  

          積分與排名

          • 積分 - 598150
          • 排名 - 80

          最新評論

          java的thread dump

          Posted on 2009-01-14 14:29 leekiang 閱讀(1586) 評論(0)  編輯  收藏 所屬分類: java

          Sun的JVM用下列方法可以產生Thread Dump堆棧信息:

          1,Solaris OS
          <ctrl>-’\’ (Control-Backslash)
          ?kill -QUIT <pid>

          2, HP-UX/UNIX/Linux
          Kill -3 PID?
          PID通過下面方法獲取
          ps -efHl | grep 'java' **. **

          3,Windows
          直接對MSDOS窗口的程序按Ctrl-break

          有些Java應用服務器是在控制臺上運行,如Weblogic,為了方便獲取threaddump信息,在 weblogic啟動的時候,最好將其標準輸出重定向到一個文件,用"nohup sh startWebLogic.sh > start.log &"命令,執行"kill -3 <pid>",Stack trace就會輸出到start.log里。Tomcat的Thread Dump會輸出到命令行控制臺或者logs的catalina.out文件里。為了反映線程狀態的動態變化,需要接連多次做thread dump,每次間隔10-20s。

          Sun JVM的常見線程狀態

          對于thread dump信息,主要關注的是線程的狀態和其執行堆棧
          線程的狀態一般為三類
          Runnable(R):當前可以運行的線程
          Waiting on monitor(CW):線程主動wait
          Waiting for monitor entry(MW):線程等鎖
          一般關注的都是第一和第三種狀態的線程
          Cpu很忙則關注runnable的線程
          Cpu閑則關注waiting for monitor entry的線程
          一種典型的死鎖是由于在server端應用(比如servlet)中請求由同一weblogic實例server的資源
          解決辦法就是將該servlet放到另外的執行隊列里去執行


          來源:http://www.searchfull.net/blog/2007/04/10/1176207938784.html

          Thread Dump Analyzer 主頁:https://tda.dev.java.net/

          主站蜘蛛池模板: 赤峰市| 策勒县| 金塔县| 长白| 东乡族自治县| 昔阳县| 永济市| 翁牛特旗| 全椒县| 镇坪县| 固原市| 香河县| 马公市| 吴江市| 沽源县| 东乌| 靖西县| 田林县| 治县。| 平湖市| 扎兰屯市| 镇巴县| 泗阳县| 潞城市| 苍溪县| 开原市| 鹤庆县| 枞阳县| 黔南| 秭归县| 班玛县| 光泽县| 青川县| 梓潼县| 屏东市| 新巴尔虎右旗| 米易县| 广南县| 文昌市| 宣汉县| 象州县|