首页 > 其他分享 >CPU飙高问题排查SOP

CPU飙高问题排查SOP

时间:2023-07-03 18:44:05浏览次数:40  
标签:查看 SOP jstack ID 飙高 线程 arthas CPU

1.查看监控

CPU飙高:集群表现,监控中,集群50%以上的机器CPU使用率超过60%
查看监控,可以看到哪些机器CPU飙高

2.止血

  • 如果有降级开关,则打开降级开关
  • 看监控QPS top3-top5的接口,进行限流,降50%。【防止流量持续增长,留给研发解决问题的时间】
  • 观察系统情况

3.排查工具使用

方法1:top + printf + jstack结合使用

  1. 查看占用cpu最高的进程
top

2.查看某个进程下占用CPU最高的线程

top -Hp <进程PID>

3.查看进程所有线程的快照信息

jstack [进程ID]

# 输出到文件1.log
jstack [进程ID] > 1.log

# 找到16进制的线程ID表示
printf '%x\n'  [线程ID]

jstack [进程ID] | grep '0x[16进制表示]' 

方法2:使用arthas查看堆栈

方法1中, top + printf + jstack的方式太繁琐,可以直接使用arthas的thread命令来定位。

# 启动arthas
java -jar arthas-boot.jar
# 查看占用CPU前3个线程快照。一般多执行几次,查看线程在干什么
thread -n 3
# 使用完之后,记得停止arthas
stop

方法3:火焰图

上述的两种方式都是查看CPU堆栈快照,查看某个瞬间最消耗CPU的线程是哪个。如果运气好,可能在查看的瞬间,可以看到最消耗CPU的线程。但是,有一些特殊的情况是,某个线程一直在以某个很小的速度在消耗CPU,所以,通过上述两种方式都是看不出来的。幸运的是,火焰图可以进行一段时间内的采样,从而克服上面的问题。
使用arthas可以方便的生成火焰图。

# 启动arthas
java -jar arthas-boot.jar

# 开始。默认为cpu火焰图,也可以获取内存分配、锁的火焰图
profiler start

# 查看状态
profiler status

# 停止采样。此时,会在控制台打印出html文件的输出路径
profiler stop

# 使用完之后,记得停止arthas
stop

下载文件到本地,使用浏览器打开。如下图

CPU消耗的占比与颜色无关,只是与X轴的占用宽度有关系。宽度越宽,代表该方法消耗的时间占比越多。
从下往上看,是方法调用栈。下层是调用方,上层是被调用方。


从上图分析,可以定位到消耗CPU宽度最宽的代码。

一般,使用方法2,可以快速定位到问题代码。

标签:查看,SOP,jstack,ID,飙高,线程,arthas,CPU
From: https://www.cnblogs.com/phenixlife/p/17514931.html

相关文章

  • Genuine Intel(R) CPU型号
    起因:在盘点固定资产的时候,发现有一台电脑CPU不显示具体型号,而是 英特尔@2.60GHz(X2),通过主板型号来判断是至强系列的CPU,后经软件识别为Genuine,然后去查资料才了解到该CPU的相关信息 GenuineIntel(R)CPU GenuineIntel(R)CPU是INTEL正式版CPU的意思,INTELCPU有3......
  • tensorflow—CPU版安装教程
    一、创建TensorFlow虚拟环境(这里还没有进行安装)检测目前创建了哪些环境:condainfo--envs 创建虚拟环境:condacreate--nametensorflow(可以自己命名) python=3.8创建虚拟环境如下图所示:  此时激活自己创建的虚拟环境即可:activate(环境名称)二、安装TensorFlow清华......
  • 关于信创CPU测试的一些想法和思路
    关于信创CPU测试的一些想法和思路背景最近荷兰政府颁布了关于半导体设备出口管制的最新条例.好像45nm以下的工艺的设备都可能收到限制.对中国的相关厂商比如长鑫还有华虹的影响应该都比较大.认为可能也会影响中芯国际的生产与制备.国家的大基金应该会加强对芯片制造类......
  • Pyside6-QtCharts+psutil实战-绘制一个CPU监测工具
    今天是实战篇章,我们结合可以快速提升我们开发效率的工具一起开实战一波实时读取系统CPU使用情况的折线图。使用的开发工具QtDesigner来开发UI界面。十分便捷。使用起来也算比较的简单了,虽然也存在不少的BUG。对所需要的控件进行拖拽式,就OK。后续会出一个简单的视频录制。第二步,......
  • cpu profiler学习
    转自:https://brpc.apache.org/docs/builtin-services/cpu_profiler/1、介绍 左上角是总体信息,包括时间,程序名,总采样数等等。 函数调用方框内容:  从上到下:函数名(namepace/类名/方法名)、这个函数本身(除去所有子函数)占的采样数和比例、这个函数及调用的所有子函数累计的采......
  • Java程序CPU消耗分析之找出最耗CPU线程
    java程序CPU消耗过高一般有两种情况:1、us过高,应用占用CPU资源过高,需找出具体占用CPU的线程所执行的代码,分析定位问题原因。分析步骤如下:(1)使用top命令找出占用cpu最高的JAVA进程(2)找出占用cpu最高的线程top-Hp1781(3)占CPU最高线程17596换算成16......
  • SQLServer Core 序列号使用CPU限制的处理
    SQLServerCore序列号使用CPU限制的处理背景有客户是SQLSERVER的数据库.说要进行一下压测.这边趁着最后进行一下环境的基础搭建工作.然后在全闪的环境上面搭建了一个Windows2019+SQL2019的环境发现一个挺好的地方.SQLSERVER会提示,如果使用enterprise的序列号的话仅能......
  • Linux系统中常见的CPU问题及其解决方法!
    Linux系统跟Windows系统在操作上,还是有很多不同之处的,有些刚开始使用Linux系统的小伙伴,常常会不知该如何操作,今天老男孩教育小编给大家讲解一下Linux系统常见的CPU问题及其解决方法,以下是详细的内容:1、频繁的CPU过载CPU过载是一种常见的问题,尤其是那些运行重负载应用程......
  • 加湿助眠仪语音方案,低功耗语音芯片NV040C-SOP8
    随着生活水平的提高,人们对于居住环境的要求也越来越高,不仅要求舒适、温馨的居住环境,同时还需要一些高科技产品来提高生活质量。比如,加湿助眠仪就是一款非常受欢迎的高科技产品。加湿助眠仪语音方案的基本设计思路是,通过语音交互的方式,让用户可以轻松控制加湿助眠仪的工作状态,可以......
  • cpuinfo详解
    目录cpuinfo详解1、通过cat/proc/cpuinfo查看2、通过lscpu命令进行查看3、逻辑核数、物理cpu、线程数关系4、查看cpu相关信息命令cpuinfo详解linux系统,cpu相关信息是保存在中/proc/cpuinfo文件中。1、通过cat/proc/cpuinfo查看[root@root~]#cat/proc/cpuinfoproces......