java問題診斷方法及工具

來源:互聯網
上載者:User

線上系統出現問題時,需要記載系統當前健全狀態,總結一下,大概需要關注以下幾個方面:
1.負載:——top命令
 在linux上,執行top 等命令,關注load, Memory, CPU 等系統概況,以及關注CPU和memory 佔用較多的進程。
 使用top -H, 並按 shift+p 對CPU進行排序,找到當前佔用CPU最多的線程。(top -u bpm -H),-H 按線程顯示,否則按進程顯示
 使用 ps -T <pid> |wc -l 找到當前啟動並執行java 進程的線程數。

2.Thread dump——jstack
 kill -3 <pid> 
 jstack <pid> 截獲當前java 進程的線程堆棧。

 (java thread dump相關文章)

3. Memory——jmap
 jmap -heap <pid> 可以得到當前堆記憶體情況。
 如果懷疑有記憶體問題,還可以dump 堆對象。
 Java5:jmap -heap:format=b <pid>
 Java6: jmap -dump:format=b,file=heap.bin <pid>
 注意:這個操作對機器有很大的效能影響。在java 6中,這個也可以通過java 啟動參數中加入-XX:HeapDumpPath=/home/nasdaq/oom.hrof -XX:+HeapDumpOnOutOfMemoryError 實現OOM時自動memory dump

4.GC——jstat
 jstat -gcutil <pid> 得到當前應用的gc 情況。

5.網路連接情況
 得到與網路各機器的串連數
 netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r 
以上命令執行結果是:
 串連數量  串連ip
 也可以通過netstat 具體關注某個連接埠的串連數。

6.日誌

 備份當前應用日誌。

7.工具:

Heap Dump分析工具:Memory Analyzer (MAT):http://www.eclipse.org/mat/(使用Memory Analyzer Tool(MAT)Eclipse外掛程式分析記憶體泄露)Thread Dump分析工具:Lockness:http://lockness.plugin.free.fr/home.php

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.