需掌控系統總體指標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