後臺服務的變慢排查思路(輕量級應用服務器中測試)

在實習時接觸的是分佈式系統,公司實現了一套系統的日誌和性能監控架構,對問題的排查多是查異常日誌調接口。近來開始熟悉Linux系統,發覺合格的程序員除了異常這個突破點,也應掌握對系統本身性能問題的診斷能力。就像醫生診斷病人一樣診斷服務變慢的機器,很好玩的樣子。
大概整理出這樣的思路:
自上而下,做系統系能分析,主要是CPU,內存和IO三大塊
1.通過“top”命令查看負載情況
在這裏插入圖片描述
第一行load average表示:1分鐘平均負載,5分鐘平均負載,15分鐘平均負載分別是0.02,0.10,0.09。這些值不超過50%也沒有明顯升高跡象。若短期均值明顯高於長期則負載很重。‘
可進一步排查最耗CPU的Java線程

top -H //"-H"表示thread模式,也可配合grep更精準的定位

最後利用jstack獲取線程數,對比相應ID即可。
2.內存使用

"free"命令查看內存使用情況

在這裏插入圖片描述
JVM的性能不接受大量swap的使用
3.IO問題

  • 網絡IO
  • 磁盤IO-----"iostat"命令判斷磁盤狀況
    在這裏插入圖片描述

JVM 層面的性能分析

jstat -help命令可查看分析GC的具體流程

jstat - [-t] [-h] [ []]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章