性能問題分析思路

1. cpu高排查過程

    第一步:top                        #找進程

    第二步:top -Hp pid           #找線程

    第三步:printf "%x\n"         #線程id   --- 10進制的線程id轉十六進制的線程id

    第四步:jstack pid | grep  bc8      #線程id,如果要看詳細的就把 jstack pid  到具體文件,bc8是十六進制線程

2. 內存泄露

    堆內存泄露

    第一步:jmap -heap pid   #查看JVM內存使用情況

    第二步:jmap -histo pid  #生成堆棧快照

    第三步:jmap -dump:format=b,file=andashu.bin pid  #把內存使用情況輸出到文件,用MAT或者jhat分析 

                 jmap -dump:live,format=b,file=heap.prof pid #只dump存活的對象

    棧內存泄露

    持久代內存泄露

3. TPS壓不上去

    https://www.cnblogs.com/imyalost/p/8309468.html

4. 數據庫死鎖

5. 線程死鎖

6. 數據庫配置不合理

7 sql數據不合理

8. 數據庫連接池不釋放

    案例現象:頁面訪問無響應

    案例分析:用jstack pid 查看線程棧的使用的狀態,發現大部分線程都在等待鏈接,由此我們猜測,可能是數據庫鏈接池不夠硬 ,於是我們把數據庫連接池調大後發現還是不行,由此可得出爲數據庫連接池不釋放。

    解決方案:讓開發人員使用完數據庫鏈接池後,及時的的close()。

9. 接口響應慢

10. TPS出現波峯波谷

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