Linux 服务器CPU超高如何快速定位

news/2024/5/10 18:03:41/文章来源:https://blog.csdn.net/weixin_39970883/article/details/129196384

前言
在生产环境中有时会遇见服务器CPU超高的问题,特别是重大版本发布后如果有内存泄露很容出现CPU超高,严重可能会达到100%。现在我们使用的服务器都是多核CPU,当出现CPU告警我们需要及时发现问题代码并处置,不然严重情况下会导致服务器宕机。

如何快速定位
1、找到最耗CPU进程
2、找到最耗CPU线程
3、找到线程堆栈信息
4、找到问题代码并处置

定位工具top

top [-] [d] [p] [q] [c] [C] [S] [n]
参数:
d:指定每两次屏幕信息刷新之间的时间间隔,当然用户可以使用s交互命令来改变之
p:通过指定监控进程ID来仅仅监控某个进程的状态
q:该选项将使top没有任何延ch迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行
S:指定累计模式
s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险
i:使top不显示任何闲置或者僵死进程
c:显示整个命令行而不只是显示命令名
H:显示线程
本次定位我们需要用到:
c:显示整个命令行而不只是显示命令名
H:显示线程

小试牛刀
我们以测试环境为例,找出最耗CPU线程堆栈并定位代码
1、找到最耗CPU的进程
执行top -c ,显示进程运行信息列表,c参数作用是显示整个命令行
键入P (大写p),进程按照CPU使用率排序
图示:
在这里插入图片描述
如上图,最耗CPU的进程PID为1,查看命令行可以看到是loanOrder服务。

2、找到最耗CPU的线程
top -Hp 1
显示一个进程的线程运行信息列表,参数H就是显示线程,参数p则是仅仅监控pid
键入P (大写p),线程按照CPU使用率排序
图示:
在这里插入图片描述
如上图,进程1内,最耗CPU的线程PID为750。

3、找到线程堆栈信息
3.1 将线程PID转化为16进制,需要使用命令 printf “%x\n” 线程PID
[root@devops-01 /]# printf “%x\n” 750
2ee
如上750的16进制2ee,之所以要转化为16进制,是因为堆栈里线程id是用16进制表示的。

3.2 根据查到进程下线程755过滤得到堆栈信息,此时需要使用命令
jstack 进程PID | grep ‘线程PID’ -C5 --color
jstack 1 | grep ‘2ee’ -C5 --color
图示:
在这里插入图片描述

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

4、根据堆栈信息找到问题代码并合理处置
目前是在锁等待的状态。在实际的内存泄露场景中,一般此时就会展示发生内存泄露的代码。

总结:用命令找到影响CPU的堆栈代码是最方便的,当然也可以采用arthas诊断工具,只是需要安装工具包然后也是看控制台找到线程ID,然后根据线程堆栈定位代码。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HashMap~

HashMap: HashMap是面试中经常被问到的一个内容,以下两个经常被问到的问题, Question1:底层数据结构,1.7和1.8有何不同? 答:1.7数组+链表,1.8数组+(链表|红…

【Redis中bigkey你了解吗?bigkey的危害?】

一.Redis中bigkey你了解吗?bigkey的危害? 如果面试官问到了这个问题,不必惊慌,接下来我们从什么是bigkey?bigkey划分的类型?bigkey危害之处? 二.什么是bigkey?会有什么影响&#xff…

苹果设计可变色Apple Watch表带,智能穿戴玩法多

苹果最新技术专利显示,苹果正在为 Apple Watch 设计一款可变色的表带,可以根据佩戴者所穿着的服装、所在的环境等自动改变颜色。据介绍,这款表带里的灯丝具有电致变色功能,可以通过施加不同的电压,来实现显示多种颜色或…

jvm常识

Jvm工作原理学习笔记0126一、JVM的生命周期1.JVM实例对应了一个独立运行的java程序它是进程级别a)启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点b)运行。ma…

web中git漏洞的形成的原理及使用

目录 1.Git漏洞的成因 1.不正确的权限设置: 2.代码注入漏洞: 3.未经身份验证的访问: 4.非安全传输: 5.跨站脚本攻击(XSS): 2.git泄露环境的搭建 git init: git add&#xff1…

跟小米、特斯拉分“蛋糕”的优必选要IPO

‍数据智能产业创新服务媒体——聚焦数智 改变商业如果要问目前科技界最火的话题是什么,很多人的答案将是ChatGPT。而且,ChatGPT大有“破圈”之势,不仅业界人士在关注,各行各业的普通人也在大量讨论。要说最近科技圈讨论的焦点&a…

C++【模板STL简介】

文章目录C模板&&STL初阶一、泛型编程二、函数模板2.1.函数模板概念2.2.函数模板格式2.3.函数模板的实例化2.4.模板参数的匹配原则三、 类模板3.1.模板的定义格式3.2.类模板的实例化STL简介一、STL的概念、组成及缺陷二、STL的版本C模板&&STL初阶 一、泛型编程…

Allegro如何显示层叠Options和Find操作界面

Allegro如何显示层叠Options和Find操作界面 Allegro常规有三大操作界面,层叠,Options和Find,如下图 软件第一次启动的时候,三大界面是关闭的,下面介绍如何把它们打开,具体操作步骤如下 点击菜单上的View点击Windows

秒懂算法 | 回归算法中的贝叶斯

在本文中,我们会用概率的观点来看待机器学习模型,用简单的例子帮助大家理解判别式模型和生成式模型的区别。通过思考曲线拟合的问题,发现习以为常的损失函数和正则化项背后有着深刻的意义 01、快速理解判别式模型和生成式模型 从概率的角度来理解数据有着两个不同的角度,假…

MySQL调优

MySQL调优 数据库优化常见方案 优化shema,sql语句索引加缓存,memcached,redis主从复制,读写分离垂直拆分水平拆分 为了知道怎么优化SQL,必须先清楚SQL的生命周期 SQL生命周期 应用服务器连接数据库服务器,建立一个TCP/IP连接&#xff0c…

公网远程连接Oracle数据库【内网穿透】

文章目录1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程OracleOracle,是甲骨文公司的一款关系数据库管理系…

【OpenAI】基于 Gym-CarRacing 的自动驾驶练习项目 | 路径训练功能的实现 | GYM-Box2D CarRacing

限时开放,猛戳订阅! 👉 《一起玩蛇》🐍 💭 写在前面: 本篇是关于多伦多大学自动驾驶专业项目的博客。GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。它是流行的 Box2…

数据库浅谈之 Bloom Filter

数据库浅谈之 Bloom Filter HELLO,各位博友好,我是阿呆 🙈🙈🙈 这里是数据库浅谈系列,收录在专栏 DATABASE 中 😜😜😜 本系列阿呆将记录一些数据库领域相关的知识 &am…

亚马逊短期疲软,但长期前景乐观

来源:猛兽财经 作者:猛兽财经 由于投资者对亚马逊(AMZN)前景的担忧,导致该公司的股价在过去一年中下跌了39%。然而猛兽财经认为亚马逊近期面临的不利因素只是暂时的,该公司还是有充分的条件可以在医疗保健和物流领域获得重大增长机…

华为OD机试题,用 Java 解【N 进制减法】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…

华为OD机试题,用 Java 解【快递运输】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…

我希望早点知道的关于成长的建议

人上了年纪,往往在诸如更加闭塞,更加固执这些缺点之外,再多出来一个缺点:那就是动不动就爱给别人建议。我当然也未能免俗。有时候会听到同样悲观且固执的过来人告诉我,这些建议说了和没说效果都一样,人们在…

「媒体邀约」四川有哪些媒体,成都活动媒体邀约

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 四川省位于中国西南地区,是中国的一个省份。成都市是四川省的省会,成都市是中国西部地区的政治、经济、文化和交通中心,也是著名的旅游胜地。每年的文…

关于iframe一些通讯的记录(可适用工作流审批,文中有项目实践,欢迎咨询)

一.知识点(1).我们可以通过postMessage(发送方)和onmessage(接收方)这两个HTML5的方法, 来解决跨页面通信问题&#xff0c;或者通过iframe嵌套的不同页面之间的通信a.父页面代码如下<div v-if"src" class"iframe"><iframeref"iframe"id…

Linux——进程概念(进程状态)

目录 进程状态 三态模型 五态模型 七态模型 Example eg1:阻塞态&#xff1a;等待某种资源的过程 eg2:挂起态 Linux内核源代码 Linux进程状态查看 Linux运行状态 R运行状态&#xff08;running&#xff09;: S睡眠状态&#xff08;sleeping)&#xff1a; D磁盘休眠状…