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%相关推荐

  1. windows下设置进程CPU相关性/亲合度,解决CPU使用率占用100%的问题

    windows下设置进程CPU相关性/亲合度,解决CPU使用率占用100%的问题 参考文章: (1)windows下设置进程CPU相关性/亲合度,解决CPU使用率占用100%的问题 (2)https: ...

  2. ECS服务器CPU使用率异常100%问题排查

    服务器莫名其妙的出现了CPU使用率100%,而且top.htop等一些命令,都无法查询到消耗CPU,这时会陷入到困境,是什么消耗了CPU资源? 可以参考以下的方式,进行分析排查,确定问题原因. 1.在 ...

  3. 【病毒】【CPU使用率为100%】Linux 被 kdevtmpfsi 挖矿病毒入侵

    情况描述:           CPU使用率为100%,一个未知进程杀掉后,又自动重启           服务器CPU占用100%,导致http请求无法进行           CPU使用率为100 ...

  4. CPU使用率到100%了?

    最近,一位同事急匆匆跑过来跟我说:糟糕了,服务器CPU的使用率达100%了. 我心想不可能啊,CPU有那么多核,怎会跑满?于是看了一眼,结果虚惊一场. 这位同事看到的100%,并非指整个CPU使用率到 ...

  5. CPU使用率到100%,有哪些因素影响?

    关注+星标公众号,不错过精彩内容 转自 | 涛哥依旧 最近,一位同事急匆匆跑过来跟我说:糟糕了,服务器CPU的使用率达100%了. 我心想不可能啊,CPU有那么多核,怎会跑满?于是看了一眼,结果虚惊一 ...

  6. 某个应用的CPU使用率达到100%,如何排查

    CPU使用率是单位时间内CPU的使用情况的统计,以百分比的方式展现.那么,作为最常见也是最熟悉的CPU指标,CPU的使用率是如何算出来的?再有诸如top.ps之类的性能工具展示的%user.%nice ...

  7. mysql cpu使用率100_Mysql CPU使用率长期100%的解决思路备忘

    最近一台服务器的CPU使用率长期保持在100%的状态,查看进程发现是Mysql服务导致的.于是搜索各方资料,终于成功解决问题.备忘以及分享一下,希望可以帮助各位新手朋友. (服务器运行环境是Windo ...

  8. linux 【CPU性能】CPU使用率达到100%怎么办?

    文章目录 1. 简介 2. CPU 使用率 3. 怎么查看 CPU 使用率 4. CPU 使用率过高怎么办? 5. 案例 6. 总结 1. 简介 你最常用什么指标来描述系统的 CPU 性能呢?我想你的 ...

  9. linux的CPU使用率达到100%的快速定位方式

    一.问题现象 Linux服务器(操作系统版本是centos7.9)上面部署了若干Java站点服务,突然收到运维的CPU异常g告警,到了影响业务的情况发生,经初步排查,未出现异常进程,排除挖矿病毒的原因 ...

最新文章

  1. leetCode:twoSum 两数之和 【JAVA实现】
  2. Visual C++ Windows 用来定位 DLL 的搜索路径
  3. 查询在一张表不在另外一张表的记录
  4. Redis跳跃表详解
  5. python11_Python11,文件操作
  6. 金币(信息学奥赛一本通-T1100)
  7. linux blind函数,C++拾遗--bind函数绑定
  8. 物联网卡不能使用的原因有哪些
  9. python_四元数q转旋转矩阵R(已验证)
  10. 只因少写一个判空,我的代码上线后炸了!
  11. java .class文件和.class文件区别是什么?
  12. 【Python - OpenCV】数字图像项目实战(四) - 位姿估计
  13. 陈玉琴老师的中医理学
  14. 【虚幻4】UMG组件的简介与使用(Common 常用组件篇)
  15. java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false is
  16. html: a标签中的href的作用
  17. JVM cpu过高排查
  18. 【STM32】标准库 菜鸟入门 GPIO输入
  19. SCNN--车道线检测
  20. 淘宝/天猫平台API 接口及API文档

热门文章

  1. Linux开机自启动
  2. RN 与 Android 代码交互
  3. 统计手机号耗费的总上行流量、下行流量、总流量(序列化)
  4. aurora_8b10b通信
  5. BIG DATA 神奇的大数据 - Hadoop(Linux)环境搭建与部署
  6. 【大数据之Linux】
  7. Java笔记(韩顺平Java基础7-8章)
  8. 2021年中国亚马逊耳环市场趋势报告、技术动态创新及2027年市场预测
  9. pg_pdr的生成方式
  10. Linux - 进程