定位生產環境中介軟體的問題程式碼

壹頁書發表於2015-01-22
經常遇到一種情況,就是程式上線了,隨著訪問量的增加,中介軟體伺服器的負載急劇升高.
這個時候伺服器很卡,卻不知道卡在哪裡,調整程式碼更無從談起.

首先,先找到中介軟體的程式.
[root@centos6 ~]# jps -l
或者
[root@centos6 ~]# top

應該都可以找到中介軟體的程式號(PID)


然後
top -p pid 
按下shift+h 檢視執行緒資訊
[root@centos6 ~]# top -p 18810

找到CPU使用率較高的執行緒ID,以18818為例

在Linux執行命令,得到16進位制的執行緒ID
printf 0x%x 18818
結果:0x4982

然後使用jstack指定中介軟體程式ID(PID)匯出jvm資訊
[root@centos6 ~]# jstack 18810 > jstack.log
[root@centos6 ~]# grep 0x4982 jstack.log 

可以從日誌中找到堆疊資訊,從而定位到問題的程式碼

參考:
http://www.iteye.com/topic/1132321
http://jameswxx.iteye.com/blog/1041173


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1411158/,如需轉載,請註明出處,否則將追究法律責任。

相關文章