怎么解决线上CPU100%的问题
生活随笔
收集整理的這篇文章主要介紹了
怎么解决线上CPU100%的问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
怎么解決線上CPU100%的問題
背景
Java服務(wù),有時候會遇到CPU 100%的問題,對于這樣的問題,我們?nèi)绾慰焖俣ㄎ徊⒔鉀Q呢?一般會有如下幾個步驟。
解決步驟
top
jmap -dump:live,format=b,file=./heapdump.hprof 32695
快速解決
wget --no-check-certificate https://raw.github.com/oldratlee/useful-scripts/release/show-busy-java-threads
chmod +x show-busy-java-threads
實例代碼
public class CpuUseTest {public static void main(String[] args) {new Thread() { public void run() {int result = 0;while (true) {result++;if (result > Integer.MAX_VALUE / 2) {result = 0;}}}}.start();} }編譯
javac
執(zhí)行
java 類名
打印堆棧信息
當(dāng)然更常見的是我們對整個jstack文件進行分析,通常我們會比較關(guān)注WAITING和TIMED_WAITING的部分,BLOCKED就不用說了。我們可以使用命令cat jstack.log | grep “java.lang.Thread.State” | sort -nr | uniq -c來對jstack的狀態(tài)有一個整體的把握,如果WAITING之類的特別多,那么多半是有問題啦。
總結(jié)
以上是生活随笔為你收集整理的怎么解决线上CPU100%的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支付宝(即时到账批量退款业务错误码)
- 下一篇: spring boot jpa级联保存