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出現波峯波谷