線上系統性問題定位與方法論

需掌控系統總體指標java

  • 系統層  也就是咱們的部署軟硬件環境。一般包含CPU、磁盤、內存、網絡IO等。咱們的系統是分佈式的,仍是單機應用?CPU是幾核的?物理機仍是虛機?內存、磁盤是多大?網卡的規格?web

  • 軟件層  也是咱們部署的軟件環境。負載均衡服務器?JDK版本?web服務器(Tomcat等)以及JVM參數設置?數據庫、緩存使用的是哪一種產品?數據庫

  • 應用層  也就是咱們的系統自己。關鍵接口的平均響應時間(RT)是多少?服務的QPS是多少?某個接口的併發數能承受多少?緩存

 

保留事故現場,基本方式以下:服務器

a. 執行top命令,若CPU空閒程度較低:shift+p按CPU使用率倒排,記錄最耗資源的進程信息。網絡

b. 執行free –m命令,若內存使用量高:執行top,shift+m按內存使用率倒排,記錄最耗資源的進程信息。併發

c. 對嫌疑進程執行ps xuf | grep java,打印進程詳細信息並記錄。負載均衡

d. 使用jstack <PID> >jstack.log收集線程信息(反覆多取幾回)。分佈式

e. 使用jstat–gcutil <PID> 查看Old區佔用率,對接近100%的進程執行jmap<PID> > jmap.log保留內存信息。線程

 

https://mp.weixin.qq.com/s/6WqfBFWioxucZACYnaeMZg

相關文章
相關標籤/搜索