服务器CPU突然告警,如何定位是哪个服务进程导致CPU过载,哪个线程导致CPU过载,哪段代码导致CPU过载?

步骤一、找到最耗CPU的进程

工具:top

方法:

  • 执行top -d 1 -c,每秒刷新一次,显示进程运行信息列表

  • 键入P (大写p),进程按照CPU使用率排序

图示:

如上图,最耗CPU的进程PID为1802

步骤二:找到最耗CPU的线程

工具:top

方法:

  • top -d 1 -Hp 1802,显示一个进程的线程运行信息列表

  • 键入P (大写p),线程按照CPU使用率排序

图示:

如上图,进程1802内,最耗CPU的线程PID为1826

步骤三:将线程PID转化为16进制

工具:计算器

之所以要转化为16进制,是因为堆栈里,线程id是用16进制表示的。

步骤四:查看堆栈,找到线程在干嘛

工具:jstack|grep

方法:jstack 1802 | grep ‘722’ -C5

  • 打印进程堆栈

  • 通过线程id,过滤得到线程堆栈

图示:

如上图,找到了耗CPU高的线程对应的线程名称“http-nio-10287-exec-10”,以及看到了该线程正在执行代码的堆栈。

按照这几个步骤,大多数的CPU 100%问题都可以定位到,欢迎大家留言交流。

线上问题定位—cpu飚高相关推荐

  1. 解决线上问题-定位CPU占用过高

    如果线上服务器CPU占用率过高,如何定位问题呢? 1.使用 top 命令查看占用CPU最高的pid 2.使用 top -H -p pid或 top -Hp pid命令查看占用cpu最大的线程id即 t ...

  2. 线上问题定位------CPU瓶颈

    cpu异常往往还是比较好定位的.原因包括业务逻辑问题(死循环).频繁gc以及上下文切换过多.而最常见的往往是业务逻辑(或者框架逻辑)导致的 可以使用一下命令查使用CPU最多的10个进程      ps ...

  3. 简单的cpu飚高问题定位脚本

    老司机在定位和解决问题时都有着自己的一套方法论,总不能老踩一些重复的坑是吧.老司机一般多少都遇到过服务器cpu飚高的问题,定位问题的方法网上文章多如牛毛,现这里再总结一下,对于混部多个Java应用的服 ...

  4. window服务器cpu过高的排查_线上服务器发生CPU占用率过高应该如何排查并定位问题?...

    国外开发者平台 HankerRank 发布的 2018 年开发者技能调查报告中有一项关于"雇主最看重哪些核心能力"的调查,结果显示如下: 排名前几的比较受重视的能力分别为:解决问题 ...

  5. Arthas 实践——生产环境排查 CPU 飚高问题

    生产环境 CPU 告警: 13:40 收到我们的生产环境服务器绿版 CUP 超负载告警通知. 此时心里只有一个想法,重启大法好,马上登录服务器,执行 top 发现进程 30247 和 28337 占用 ...

  6. cpu飚高的排查思路

    cpu的衡量指标 使用率util:代表的是单位时间内CPU繁忙情况的统计.操作系统对cpu的管理就是利用周期的tick时钟中断,将cpu的使用划分时间片.每个时间片内去执行不同进程/线程里的代码.所以 ...

  7. Arthas排查生产环境CPU飚高问题

    启动Arthas java -jar arthas-boot.jar 执行dashboard dashboard 线程 35 和 12042 不正常 CUP 占用 49% 定位代码行 thread 3 ...

  8. 排查cpu飚高问题-两种方案

    cpu 飚高原因 频繁创建线程 线程内进行频繁计算 模拟代码 @SpringBootApplication@EnableSchedulingpublic class CrawlBigDataAppli ...

  9. 内存地址 哪个程序_记一次排查线上程序内存的忽高忽低,又是大集合惹祸了...

    一:背景 1. 讲故事 昨天继续还技术债,优化一轮后的程序拉到线上后内存继续忽高忽低,低的时候20G,高的时候30G,过了一会又下降了几个G,毫无疑问,程序中有什么集合或者什么操作占用了大量内存,所以 ...

最新文章

  1. 一个硬中断的完整处理过程【转】
  2. 积跬步,聚小流------Bootstrap学习记录(2)
  3. 剑网三缘起应老玩家要求调整规则,几分钟就能搞定,获得足够声望
  4. P5659-[CSP-S2019]树上的数【贪心】
  5. jzoj1293,P2933-气象牛(气象测量)【dp】
  6. 04-mysql常见命令,语法规范,
  7. c++11 多线程 2c++ concurrency in action
  8. Linux系统下xampp集成环境安装
  9. 20200727:力扣第31周双周赛题解
  10. C#中缓存的简单方法及使用Sql设置缓存依赖项
  11. Go语言和其它编程语言的对比
  12. 计算机控制系统课件百度云,技术员给你防止百度网盘和谐的方法
  13. 2021-10-24
  14. QQ微信等分享链接时系统提取的标题和图片代码
  15. 从钢铁侠看Decorator 装饰者模式
  16. 三次样条插值(附完整代码)
  17. 2421:Exchange Rates——动态规划
  18. 怎么去除烦人的WPS广告
  19. 根据字体的中文名 获取 字体的路径 和 英文名
  20. 企业微信搭建私域流量增长运营双管齐下

热门文章

  1. 神经网络的matlab代码,神经网络 matlab代码
  2. 19-20-1计算机网络quiz3
  3. qt 大文件生成md5校验码
  4. VGA/HDMI显示器驱动设计
  5. 2022江苏最新通信施工安全员模拟考试试题及答案
  6. elasticsearch aggregations 之一:引入buckets、metrics
  7. 覆盖安装Play Store版本的国产App
  8. 关于RTF提取图片和文字的方法 (转)
  9. 关于SAP咨询顾问学习的几点建议
  10. 用python做一个缩放自如的鸣人