線上服務(wù)出問題了J恫埂W寤础!凭涂!
- 當(dāng)手機(jī)報(bào)警短信響起-》
- 我們匆匆忙忙打開電腦-》
- 然后登上跳板機(jī)-》
- 一條一條執(zhí)行命令祝辣,dump下當(dāng)前vm和heap情況
一看表好幾分鐘過去了!G杏汀蝙斜!多少個(gè)用戶受到影響,又要做casestudy了澎胡,但是發(fā)現(xiàn)事后復(fù)盤都不知道dump去哪兒找孕荠。
寫了個(gè)簡(jiǎn)單的腳本分分鐘snapshot系統(tǒng)的各種情況娩鹉。
#!/bin/bash
# Execute this shell where occurrence hanpen
# XXXX 可以是tomcat jetty的主線程
pid=`jps -l | grep XXXX | awk '{print $1}'`
mkdir ~/$pid
jstack $pid > ~/$pid/stack.log
top -H -p $pid -n 1 > ~/$pid/thread.log
jmap -heap $pid > ~/$pid/heap.log
jmap -histo $pid > ~/$pid/histo.log
jmap -dump:format=b,file=~/$pid/dump.bin $pid
雖然腳本簡(jiǎn)單,但是可以擴(kuò)展的空間比較大稚伍,可以簡(jiǎn)單搞個(gè)web頁面弯予,一鍵觸發(fā)。
補(bǔ)充一個(gè)完整的吧槐瑞。 https://github.com/classtag/ideas/issues/18