CPU100%,怎么快速定位?

news2025/1/15 12:45:52

一台机器,CPU100%,如何找到相关服务,如何定位问题代码,今天简单分享下思路。

假设,服务器上部署了若干Java站点服务,以及若干Java微服务,突然收到运维的CPU异常告警。如何定位是哪个服务进程导致CPU过载,哪个线程导致CPU过载,哪段代码导致CPU过载?

简要步骤如下:

(1)找到最耗CPU的进程;

(2)找到最耗CPU的线程;

(3)查看堆栈,定位线程在干嘛,定位对应代码;

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

工具:top

方法

  • 执行top -c ,显示进程运行信息列表

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

图示:

2bf66af53c5e7f4192bee743e0ec5c26.jpeg

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

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

工具:top

方法

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

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

图示:

57b8ea988dd53402b1e3a1ca9cf74d50.jpeg

如上图,进程10765内,最耗CPU的线程PID为10804。

步骤三:查看堆栈,定位线程在干嘛,定位对应代码
首先,将线程PID转化为16进制。

工具:printf

方法:printf "%x\n" 10804

图示:

8e2e0513b6c2ce844e918e98a9403122.png

如上图,10804对应的16进制是0x2a34,当然,这一步可以用计算器。

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

接着,查看堆栈,找到线程在干嘛。

工具:jstack

方法:jstack 10765 | grep '0x2a34' -C5 --color

  • 打印进程堆栈

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

图示:

76af23e9808d4f3316dcff82332f1834.jpeg

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

最后,根据堆栈里的信息,找到对应的代码,搞定!

希望对经常进行线上CPU问题排查的同学有帮助,如果有更好的实践,也欢迎分享。

架构师之路-分享技术思路

相关文章:

《线上问题排查,这些命令你一定用得到!》

《顶尖的人都是怎么想的!(很残酷)》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74537.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

是时候给钉钉和腾讯会议算算账了

杨净 萧箫 发自 凹非寺量子位 | 公众号 QbitAI这几天,工作和上课等事情开始有回归线下的迹象,腾讯会议、钉钉似乎也可以松口气了。毕竟云会议的这两大APP,前段时间一直在被网友找平替。一来,它们要收费了;二来&#xf…

【有营养的算法笔记】整数二分和浮点二分的全面分析

👑作者主页:进击的安度因 🏠学习社区:进击的安度因(个人社区) 📖专栏链接:有营养的算法笔记 文章目录一、铺垫二、整数二分模板分析三、模板应用 —— 数的范围四、浮点二分模板分析…

简单引入JQuery

简单引入JQuery前言环境配置下载官网的JQuery到本机引入JQuery到Html文件中前言 作为一个兢兢业业的后端程序猿,这里为了方便自己搭建的项目更加合理,使自己写的接口对前端也更加友好。所以我决定,从头开始学习下前端知识。 环境配置 下载…

[附源码]JAVA毕业设计翔隆生鲜超市进货管理系统(系统+LW)

[附源码]JAVA毕业设计翔隆生鲜超市进货管理系统(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 …

聚宽量化入门量化策略是什么?

聚宽量化入门量化策略JoinQuant聚宽API文档:MetaTradeAPI (metatradeapi) - Gitee.com 获取要操作的股票或指数成分股 1、# 导入函数库; 2、import jqdata; 3、# 初始化函数,设定基准 def initialize(context): …

每日一题 —— LC. 1687 从仓库到码头运输箱子(难度很大,但值得好好消化的一道题)

1687. 从仓库到码头运输箱子 你有一辆货运卡车,你需要用这一辆车把一些箱子从仓库运送到码头。这辆卡车每次运输有 箱子数目的限制 和 总重量的限制 。 给你一个箱子数组 boxes和三个整数 portsCount, maxBoxes 和 maxWeight ,其中 boxes[i][portsi,we…

web前端期末大作业:基于HTML+CSS+JavaScript制作鲜花礼品在线购物网站设计(19页)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

代码随想录刷题Day59 | 503. 下一个更大元素 II | 42. 接雨水

代码随想录刷题Day59 | 503. 下一个更大元素 II | 42. 接雨水 503. 下一个更大元素 II 题目: 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的…

云与开源,共植数字世界的根

摘要:本文整理自阿里巴巴集团副总裁、阿里巴巴开源技术委员会负责人贾扬清,在 Flink Forward Asia 2022 主会场的开场致辞。Tips:点击「阅读原文」获取演讲 ppt~云和开源,共生、共长、共植数字世界的根。从在云上使用开…

SAP PS 第17节 项目产成品产出

SAP PS 第17节 项目产成品产出及差异处理1 模拟场景说明1.1 拖拽负库存1.2 发料原材料及报工1.3 执行副产品入库migo发预留1.4 CNS0交货1.5 后面开票产生收入按照项目结算即可项目上有一类比较另类的玩法,就是舍弃PP,依靠网络活动的负库存,实…

Web前端大作业—个人网页(html+css+javascript)我的家乡新密 (15页)含课程设计

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

2030年销售额突破200亿美元!瑞萨电子揭秘智能汽车版图

汽车正在成为继手机之后的下一个智能终端,并且已经成为全球各大芯片头部厂商的必争之地。 过去,汽车芯片市场主要由恩智浦、瑞萨电子、TI等传统汽车芯片巨头垄断,外来者鲜有机会可以入局。但近几年,包括高通、英特尔等全球各大芯…

【无人机】基于Fast行军树(FMT)求解无人机故障路径规划问题附matlab代码和论文

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

ElementPlus弹窗之后让外部区域可编辑

原始的el-dialog弹出以后外部区域是不可编辑的。 为最外层的父元素添加样式 同时给dialog本身添加样式

【工作日推算】JS计算当前时间前N个工作日(去除周末及节假日,文尾附源码下载)

【写在前面】前些日子忙了几天有关指标对比分析的功能,因为系统是对接券商类的业务,所以他们比较关注的是工作日的数据波动,因此前端指标对比数据需要拿工作日的,不然他们停市的数据比较也没用,故而今天针对之前实现的…

如何快速搞懂一家公司?

如果没有快速作为前提,你的搞懂,价值会大打折扣。 一.研究一家公司需要的宏观视野 1.把握长期明确趋势 看清宏观大背景能为你搞懂公司做出铺垫,同时看清这个公司和宏观的密切程度是怎样的,也决定了需要多大程度关注宏观变化。 …

【基于Pycharm的Django3教程】Part1:初识Django

文章目录1 初识Django1.1 django的安装1.2 创建django项目1.3 两种创建方式的对比1.4 默认文件介绍1.5 APP的创建和说明1.6 启动运行django1.7 模板和静态文件1.8 模板语法1.9 请求和响应1.10 orm数据库操作1.11 ORM 数据库案例:用户管理1 初识Django 1.1 django的…

22 条 API 设计的最佳实践

在这个微服务的世界里,后端API的一致性设计是必不可少的。 今天,我们将讨论一些可遵循的最佳实践。我们将保持简短和甜蜜——所以系好安全带,出发咯! 首先介绍一些术语 任何API设计都遵循一种叫做“面向资源设计”的原则&#…

TOWER x Binance NFT 桥接教程

TOWER x Binance NFT 销售的 TOWER 门票和人物化身皮肤 NFT 现在可以从 BNB 链桥接到 Polygon 啦! 一起来看看如何将你的 TOWER x Binance NFT 从 BNB 链转移到 Polygon👇 1、到 BinanceNFT 用户中心提取你的 TOWER NFT 到 BNB Chain,然后等待…

html多个好看的背景动态效果(附源码)

文章目录1.设计来源1.1 图片轮动背景1.2 星空流星背景1.3 动态美女背景1.4 动态屋雨背景1.5 动态街道背景1.6 动态夜幕背景2.效果和源码2.1 动态效果2.2 透明度配置2.2 源代码源码下载作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/arti…