CPU使用率100%怎么办
工作中遇到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%怎么办相关推荐
- linux cpu占用100原因查询,如何根据查询异常时间节点和连接进而确定CPU使用率100%的原因...
本文在介绍如何根据查询异常时间节点和连接进而确定CPU使用率100%的原因的基础上,重点探讨了其具体步骤,本文内容紧凑,希望大家可以有所收获. 排查 Linux 实例异常 CPU 使用率 100% 使 ...
- linux内核3.6版本及以下的bug引发的故障--cpu使用率100%
现象: 旗舰店运价库cpu使用率100%,load升高,导致后续的请求失败. 重启服务器,cpu.load恢复正常. 触发条件: (1)linux内 ...
- Linux生产环境CPU使用率100%,教你定位到具体函数
在我们项目部署上线的时候,我们是不是会经常去Linux服务器上查查服务器的CPU使用率,或者是运维经常会盯Linux的CPU使用率,发现监控报了60%的一般就会报警了,到了100%那就惨啦,做我开发的 ...
- 记录一次生产CPU使用率100%问题排查
问题背景 四月中旬生产环境的服务器频繁爆出cpu使用率100%的警告,起初这个业务线不是我负责,也就没有深入了解问题.后边,负责这个业务线的同事离职了,这件事就落在我这边了.然后,开始长达两个月的问题 ...
- 转:网御星云防火墙CPU使用率100%的解决方案
网御星云防火墙CPU使用率100%的解决方案 2018年03月01日 21:46:06 范一刀 阅读数 1482 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文 ...
- 再谈CPU使用率100%的问题
曾经我很讨厌那些运维一见到CPU使用率100%的时候就大叫狂跳的样子,我还曾经说过,如果CPU不是拿来用的,难道是用来闲置的吗. 好像我说的话挺有道理.但是,我错了- 不过这也并不意味着运维是 ...
- 网御星云防火墙CPU使用率100%的解决方案
网御星云防火墙CPU使用率100%解决方案 前几天收到河南某地方性银行出现的故障:网御星云防火墙CPU使用率一直处于100%的状态, 于是前去现场检查设备 发现 1.该防火墙策略做的并不多: 2.该防 ...
- mysql查询cpu使用率100%_数据库CPU使用率100% 排查记
1.背景: 在监控线上数据库的运行是否安全.正常的过程中,cpu 使用率是一个重要的指标,一旦cpu使用率飙升至90%+甚至达到100%,必然会对数据库的正常工作产生影响. 在排查数据库的cpu 飙升 ...
- Linux性能优化实战:应用的CPU使用率100%,我该怎么办(05)
一.什么是CPU的使用率 1.你最常用什么指标来描述系统的CPU性能? 我想你的答案,可能不是平均负载,也不是CPU上下文切换,而是另一个更直观的指标CPU使用率 CPU使用率到底是怎么算出来的吗? ...
- linux 调整 内核空间占用cpu,[Linux性能优化]3.CPU使用率100%,怎么办?
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? CPU使用率是单位时间内CPU使用情况的统计,以百分比的方式展示. CPU时间是Linux通过事先定义的节拍率(内核中表 ...
最新文章
- ssl *** 思科支持设备型号
- 汉诺塔算法python_经典算法:汉诺塔
- 树形dp小胖守皇宫(vijosP1144)
- java 的 == 和equals()区别
- (王道408考研数据结构)第七章查找-第四节:哈希表(基本概念及其操作)
- java同步方法必须是静态的吗_Java基础知识之synchronized同步方法、代码块、静态方法、静态代码块的区别...
- 如何使用groff -me在Linux上格式化学术论文
- php读取图片输出,php读取图片流输出到页面图片
- QTP基础教程(讲义)《软件测试技术》
- 计算机打字声音,键盘打字声音在哪设置
- http://www.ha97.com/
- 利用clamav为程序添加查毒功能
- NFT平台开发部署应该选择哪条区块链?
- 手机访问电脑本地html文件
- SAP软件的强大“远不止于此”
- [翻译] YLGIFImage 高效读取GIF图片
- 福州大学计算机学硕分数,2021年福州大学考研录取分数线应该在哪里查询?
- IM是做什么?可以用来实现哪些功能?
- 【英语天天读】I have as much soul as you
- oracle中怎样获取当前月上个月的第一天和最后一天?
热门文章
- Java高级之HashMap中的put()方法和putIfAbsent()方法
- HTTP提交方式之PUT详细介绍及POST和PUT的区别
- 终面(HR面)_职业竞争力和职业规划
- 自动驾驶技术基础——惯导
- JAVASE第5天笔记
- Android drawable.setBounds()+设置RadioButton的图片大小和位置
- 基于单片机的水壶自动加热系统_基于单片机的智能热水壶设计 -
- 提示GuestAdditions versions on your host (6.1.32) and guest (6.1.22) do not match错误的解决方法
- 2021-2025年中国服装合同制造的物流行业市场供需与战略研究报告
- P1107 [BJWC2008]雷涛的小猫