工作中遇到CPU使用率100%,不要慌,一起来找出原因并fix掉它。

记住这里大致流程,当线上突然遇到时,也不必手足无措。

总体流程

找出CPU比较高的进程PID

top

打印该进程下线程的CPU占用比较高的tid

top -Hp {PID}

将该tid进行16进制转换id

printf "%x\n" {tid}

打印线程的堆栈信息

jstack {PID} |grep {id} -A 100

当然这四步的执行需要时间,但我们可以将这几步写成shell脚本来执行。

安装JDK命令行工具

服务器上安装的OpenJDK ,是否有常用的命令行工具?

验证是否安装

[root@op-system ~]$ jstack -h
Usage:jstack [-l] <pid>(to connect to running process)jstack -F [-m] [-l] <pid>(to connect to a hung process)jstack [-m] [-l] <executable> <core>(to connect to a core file)jstack [-m] [-l] [server_id@]<remote server IP or hostname>(to connect to a remote debug server)

如果输出如上内容表明,已经拥有工具,倘若没有,那么继续下面。

安装

  • 查看JDK版本

[root@op-system ~]$ java -version
openjdk version "1.8.0_201"
OpenJDK Runtime Environment (build 1.8.0_201-b09)
OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)
  • 看openJDK有jstack的yum源

[root@op-system ~]$ yum whatprovides '*/jstack'
1:java-1.8.0-openjdk-devel-debug-1.8.0.201.b09-2.el7_6.x86_64 : OpenJDK Development Environment 8 with full debug on
Repo        : @updates
Matched from:
Filename    : /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64-debug/bin/jstack

找到和JDK版本对应的yum源。

  • 安装

[root@op-system ~]$ sudo yum install java-1.8.0-openjdk-devel-debug-1.8.0.201.b09-2.el7_6.x86_64

寻找问题所在

  • 查出使用率最高的进程

[root@op-system ~]$ top

发现 123067 这个进程特别消耗CPU。

  • 查看进程中线程情况

[root@op-system ~]$ top -p 123067 -H

发现 127510 这个线程特别消耗CPU,那么我们来看看这个线程到底是做什么的。

  • 十进制id转十六进制

[root@op-system ~]$ printf "%x\n" 127510
1eaec
  • 使用jstack打印出线程的堆栈信息

[root@op-system ~]$ jstack 123067 |grep 1eaec -A 100

从打印出来的信息中发现了很熟悉的代码,对,就是这里。

解决问题

那么既然找到了问题,我们就只能通过,数据库索引、SQL优化、算法优化、快速返回等方法来最这段代码优化了。

CPU使用率100%怎么办相关推荐

  1. linux cpu占用100原因查询,如何根据查询异常时间节点和连接进而确定CPU使用率100%的原因...

    本文在介绍如何根据查询异常时间节点和连接进而确定CPU使用率100%的原因的基础上,重点探讨了其具体步骤,本文内容紧凑,希望大家可以有所收获. 排查 Linux 实例异常 CPU 使用率 100% 使 ...

  2. linux内核3.6版本及以下的bug引发的故障--cpu使用率100%

    现象:          旗舰店运价库cpu使用率100%,load升高,导致后续的请求失败.          重启服务器,cpu.load恢复正常. 触发条件:         (1)linux内 ...

  3. Linux生产环境CPU使用率100%,教你定位到具体函数

    在我们项目部署上线的时候,我们是不是会经常去Linux服务器上查查服务器的CPU使用率,或者是运维经常会盯Linux的CPU使用率,发现监控报了60%的一般就会报警了,到了100%那就惨啦,做我开发的 ...

  4. 记录一次生产CPU使用率100%问题排查

    问题背景 四月中旬生产环境的服务器频繁爆出cpu使用率100%的警告,起初这个业务线不是我负责,也就没有深入了解问题.后边,负责这个业务线的同事离职了,这件事就落在我这边了.然后,开始长达两个月的问题 ...

  5. 转:网御星云防火墙CPU使用率100%的解决方案

    网御星云防火墙CPU使用率100%的解决方案 2018年03月01日 21:46:06 范一刀 阅读数 1482 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文 ...

  6. 再谈CPU使用率100%的问题

    曾经我很讨厌那些运维一见到CPU使用率100%的时候就大叫狂跳的样子,我还曾经说过,如果CPU不是拿来用的,难道是用来闲置的吗.   好像我说的话挺有道理.但是,我错了-   不过这也并不意味着运维是 ...

  7. 网御星云防火墙CPU使用率100%的解决方案

    网御星云防火墙CPU使用率100%解决方案 前几天收到河南某地方性银行出现的故障:网御星云防火墙CPU使用率一直处于100%的状态, 于是前去现场检查设备 发现 1.该防火墙策略做的并不多: 2.该防 ...

  8. mysql查询cpu使用率100%_数据库CPU使用率100% 排查记

    1.背景: 在监控线上数据库的运行是否安全.正常的过程中,cpu 使用率是一个重要的指标,一旦cpu使用率飙升至90%+甚至达到100%,必然会对数据库的正常工作产生影响. 在排查数据库的cpu 飙升 ...

  9. Linux性能优化实战:应用的CPU使用率100%,我该怎么办(05)

    一.什么是CPU的使用率 1.你最常用什么指标来描述系统的CPU性能? 我想你的答案,可能不是平均负载,也不是CPU上下文切换,而是另一个更直观的指标CPU使用率 CPU使用率到底是怎么算出来的吗? ...

  10. linux 调整 内核空间占用cpu,[Linux性能优化]3.CPU使用率100%,怎么办?

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? CPU使用率是单位时间内CPU使用情况的统计,以百分比的方式展示. CPU时间是Linux通过事先定义的节拍率(内核中表 ...

最新文章

  1. ssl *** 思科支持设备型号
  2. 汉诺塔算法python_经典算法:汉诺塔
  3. 树形dp小胖守皇宫(vijosP1144)
  4. java 的 == 和equals()区别
  5. (王道408考研数据结构)第七章查找-第四节:哈希表(基本概念及其操作)
  6. java同步方法必须是静态的吗_Java基础知识之synchronized同步方法、代码块、静态方法、静态代码块的区别...
  7. 如何使用groff -me在Linux上格式化学术论文
  8. php读取图片输出,php读取图片流输出到页面图片
  9. QTP基础教程(讲义)《软件测试技术》
  10. 计算机打字声音,键盘打字声音在哪设置
  11. http://www.ha97.com/
  12. 利用clamav为程序添加查毒功能
  13. NFT平台开发部署应该选择哪条区块链?
  14. 手机访问电脑本地html文件
  15. SAP软件的强大“远不止于此”
  16. [翻译] YLGIFImage 高效读取GIF图片
  17. 福州大学计算机学硕分数,2021年福州大学考研录取分数线应该在哪里查询?
  18. IM是做什么?可以用来实现哪些功能?
  19. 【英语天天读】I have as much soul as you
  20. oracle中怎样获取当前月上个月的第一天和最后一天?

热门文章

  1. Java高级之HashMap中的put()方法和putIfAbsent()方法
  2. HTTP提交方式之PUT详细介绍及POST和PUT的区别
  3. 终面(HR面)_职业竞争力和职业规划
  4. 自动驾驶技术基础——惯导
  5. JAVASE第5天笔记
  6. Android drawable.setBounds()+设置RadioButton的图片大小和位置
  7. 基于单片机的水壶自动加热系统_基于单片机的智能热水壶设计 -
  8. 提示GuestAdditions versions on your host (6.1.32) and guest (6.1.22) do not match错误的解决方法
  9. 2021-2025年中国服装合同制造的物流行业市场供需与战略研究报告
  10. P1107 [BJWC2008]雷涛的小猫