CPU使用率达到100%
CPU使用率居然达到100%
http://www.manongjc.com/article/20838.html
https://www.yangcs.net/posts/how-to-deal-with-increasing-of-cpu-usage/
一、查看CPU使用率
top 显示了系统总体的 CPU 和内存使用情况,以及各个进程的资源使用情况
ps 只显示了每个进程的资源使用情况
pidstat 它是一个专门分析每个进程 CPU使用情况的分析工具
pstree -p 以树状图显示进程PID为的进程以及子孙进程,如果有-p参数则同时显示每个进程的PID。
execsnoop 一个专为短时进程设计的工具。它通过 ftrace 实时监控进程的 exec() 行为, 并输出短时进程的基本信息,包括进程 PID、父进程 PID、命令行参数以及执行的结果。
二、cpu使用率过高怎么办?(能找到CPU使用率高的进程)
2.1 定位占用CPU过高的函数
通过 top、ps、pidstat 等工具,你能够轻松找到CPU 使用率较高(比如 100% )的进程。
接下来,你可能又想知道,用 CPU 的到底是代码里的哪个函数呢?
找到它,你才能更高效、更针对性地进行优化。
perf 是 Linux 2.6.31 以后内置的性能分析工具,它以性能事件采样为基础,不仅可以分析系统的各种事件和内核性能,它还可以分析指定应用程序的性能问题。第一种常见用法是 perf top,类似于 top,它能够实时显示占用 CPU 时钟最多的函数或者指令,
因此可以用来查找热点函数,使用界面如下所示:
$ perf top
Samples: 833 of event 'cpu-clock', Event count (approx.): 97742399
Overhead Shared Object Symbol7.28% perf [.] 0x00000000001f78a44.72% [kernel] [k] vsnprintf4.32% [kernel] [k] module_get_kallsym3.65% [kernel] [k] _raw_spin_unlock_irqrestore第一列 Overhead ,是该符号的性能事件在所有采样中的比例,用百分比来表示。
第二列 Shared ,是该函数或指令所在的动态共享对象(Dynamic Shared Object),如内核、进程名、动态链接库名、内核模块名等。
第三列 Object ,是动态共享对象的类型。比如 [.] 表示用户空间的可执行程序、或者动态链接库,而 [k] 则表示内核空间。
最后一列 Symbol 是符号名,也就是函数名。当函数名未知时,用十六进制的地址来表示。 注:perf top 虽然实时的展示了系统的性能信息,但它不能保存数据,无法用于离线分析。第二种常见用法是 perf record
$ perf record # 按 Ctrl+C 终止采样
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.452 MB perf.data (6093 samples) ]$ perf report # 展示类似于 perf top 的报告注:perf record则提供了保存数据的功能,保存后的数据
2.2 定位占用CPU过高线程
方法一:
1、找到最耗CPU的进程
方法:
执行top -c ,显示进程运行信息列表
键入P (大写p),进程按照CPU使用率排序2、找到最耗CPU的线程
工具:top
方法:
top -Hp 10765 ,显示一个进程的线程运行信息列表
键入P (大写p),线程按照CPU使用率排序
注:-H :Threads-mode operation3、将线程PID转化为16进制
方法:printf “%x\n” 10804
0x2a344、查看堆栈,找到线程在干嘛
工具:pstack/jstack/grep
方法:jstack 10765(进程id) | grep ‘0x2a34’ -C5 --color扩展:使用脚本来定位cpu过高是什么线程造成?
https://www.javatang.com/archives/2017/10/19/33151873.html方法二:
1、将文件下载到执行机器上
curl -O https://raw.githubusercontent.com/oldratlee/useful-scripts/master/show-busy-java-threads2、通过Top命令查找消耗CPU最高的Java进程,并获取PID3、执行以下代码即可获取
sh show-busy-java-threads $PID参考网址: 更多使用参数和方法可以参考一下网址
https://github.com/oldratlee/useful-scripts/blob/master/docs/java.md#-show-busy-java-threads4、当出现线程问题时,可以多用jstack打印几次线程堆栈,然后上传到此网站可以自动协助分析线程是否存在问题
http://fastthread.io/
三、cpu使用率过高怎么办?(找不到CPU使用率高的进程)
http://www.manongjc.com/article/20838.html
碰到常规问题无法解释的CPU使用率情况时,首先要想到有可能是短时应用导致的问题,比如 有可能是下面这两种情况。
第一,应用里直接调用了其他二进制程序,这些程序通常运行时间比较短,通过top等工具也不容易发现。
第二,应用本身在不停地崩溃重启,而启动过程的资源初始化,很可能会占用相当多的CPU。
对于这类进程,我们可以用 pstree 或者 execsnoop 找到它们的父进程,再从父进程所在的应用入手,排查问题的根源。
CPU使用率达到100%相关推荐
- windows下设置进程CPU相关性/亲合度,解决CPU使用率占用100%的问题
windows下设置进程CPU相关性/亲合度,解决CPU使用率占用100%的问题 参考文章: (1)windows下设置进程CPU相关性/亲合度,解决CPU使用率占用100%的问题 (2)https: ...
- ECS服务器CPU使用率异常100%问题排查
服务器莫名其妙的出现了CPU使用率100%,而且top.htop等一些命令,都无法查询到消耗CPU,这时会陷入到困境,是什么消耗了CPU资源? 可以参考以下的方式,进行分析排查,确定问题原因. 1.在 ...
- 【病毒】【CPU使用率为100%】Linux 被 kdevtmpfsi 挖矿病毒入侵
情况描述: CPU使用率为100%,一个未知进程杀掉后,又自动重启 服务器CPU占用100%,导致http请求无法进行 CPU使用率为100 ...
- CPU使用率到100%了?
最近,一位同事急匆匆跑过来跟我说:糟糕了,服务器CPU的使用率达100%了. 我心想不可能啊,CPU有那么多核,怎会跑满?于是看了一眼,结果虚惊一场. 这位同事看到的100%,并非指整个CPU使用率到 ...
- CPU使用率到100%,有哪些因素影响?
关注+星标公众号,不错过精彩内容 转自 | 涛哥依旧 最近,一位同事急匆匆跑过来跟我说:糟糕了,服务器CPU的使用率达100%了. 我心想不可能啊,CPU有那么多核,怎会跑满?于是看了一眼,结果虚惊一 ...
- 某个应用的CPU使用率达到100%,如何排查
CPU使用率是单位时间内CPU的使用情况的统计,以百分比的方式展现.那么,作为最常见也是最熟悉的CPU指标,CPU的使用率是如何算出来的?再有诸如top.ps之类的性能工具展示的%user.%nice ...
- mysql cpu使用率100_Mysql CPU使用率长期100%的解决思路备忘
最近一台服务器的CPU使用率长期保持在100%的状态,查看进程发现是Mysql服务导致的.于是搜索各方资料,终于成功解决问题.备忘以及分享一下,希望可以帮助各位新手朋友. (服务器运行环境是Windo ...
- linux 【CPU性能】CPU使用率达到100%怎么办?
文章目录 1. 简介 2. CPU 使用率 3. 怎么查看 CPU 使用率 4. CPU 使用率过高怎么办? 5. 案例 6. 总结 1. 简介 你最常用什么指标来描述系统的 CPU 性能呢?我想你的 ...
- linux的CPU使用率达到100%的快速定位方式
一.问题现象 Linux服务器(操作系统版本是centos7.9)上面部署了若干Java站点服务,突然收到运维的CPU异常g告警,到了影响业务的情况发生,经初步排查,未出现异常进程,排除挖矿病毒的原因 ...
最新文章
- leetCode:twoSum 两数之和 【JAVA实现】
- Visual C++ Windows 用来定位 DLL 的搜索路径
- 查询在一张表不在另外一张表的记录
- Redis跳跃表详解
- python11_Python11,文件操作
- 金币(信息学奥赛一本通-T1100)
- linux blind函数,C++拾遗--bind函数绑定
- 物联网卡不能使用的原因有哪些
- python_四元数q转旋转矩阵R(已验证)
- 只因少写一个判空,我的代码上线后炸了!
- java .class文件和.class文件区别是什么?
- 【Python - OpenCV】数字图像项目实战(四) - 位姿估计
- 陈玉琴老师的中医理学
- 【虚幻4】UMG组件的简介与使用(Common 常用组件篇)
- java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false is
- html: a标签中的href的作用
- JVM cpu过高排查
- 【STM32】标准库 菜鸟入门 GPIO输入
- SCNN--车道线检测
- 淘宝/天猫平台API 接口及API文档