zoukankan      html  css  js  c++  java
  • 一次服务器CPU占用100%的问题排查

    今天写了一段垃圾代码,然后上服务器上运行,cpu瞬间飙到了100%,现记录一下问题排除过程~

    1. 问题代码

     1 package qinfeng.zheng.mockmvcdemo;
     2 
     3 import org.springframework.beans.factory.annotation.Autowired;
     4 import org.springframework.stereotype.Component;
     5 import qinfeng.zheng.mockmvcdemo.service.UserService;
     6 
     7 import javax.annotation.PostConstruct;
     8 
     9 @Component
    10 public class TestComponent {
    11 
    12     @Autowired
    13     private UserService userService;
    14 
    15     @PostConstruct
    16     public void init() {
    17         new Thread(()->{
    18             while (true) {
    19                 if ( userService.getUser() !=null) {
    20                     // do something
    21                 }
    22             }
    23         }).start();
    24     }
    25 }

    2. top 

    3. 查找问题

    3.1  top -Hp  18571, 找出最耗cpu的线程,结果发现18584是就耗了99.9%

    3.2 将十进制的线程号转成十六进制

      printf "0x%x " 18584

    3.3  jstack查找问题代码

      jstack 18571| vim +/0x4898 -

     

      跑去看TestComponent.java 的第19行~~~~ 死到这里了。。。。。 

      网上百度一波,while(true) 超级耗cpu, Thread.sleep(1) , 睡一下,cpu直接降到1%

  • 相关阅读:
    Android购物商城
    Android简易计算器
    安卓第四周作业
    第一次安卓作业
    十五周课后习题
    第十三周作业
    十三周上机练习
    第十二周作业
    第十二周练习
    11周上机作业(5.14)
  • 原文地址:https://www.cnblogs.com/z-qinfeng/p/11723045.html
Copyright © 2011-2022 走看看