服务器CPU占用异常问题查找

背景:阿里云app相关服务器,频繁报警,提示cpu占用异常

困难&问题:没有相关云资源权限,无法查看报警提示,不知道服务器上运行哪些服务

解决步骤:

  1. 开通服务器权限,登录服务器,查看当前服务器使用情况
  2. top命令:查看占用比较多的应用

1682266898282.png

  1. jps:查看运行的java服务

1682266748093.png

  1. ll /proc/19703/cwd 查看对应pid运行的服务路径

1682266754979.png

  1. crontab -l 查看服务定时启动脚本

1682266765377.png

  1. top -p 21972 -H 查看该java应用所用线程占用情况

1682266776106.png

  1. 出CPU消耗较多的线程id,如22055,将22055转换为16进制0x5627,注意是小写

  2. 使用jstack 21972|grep -A 10 0x5627来查询出具体的线程状态

1682266782713.png

  1. 分析负载高的线程栈都是什么业务操作,优化程序并处理问题