如何优雅排查现网服务器cpu飙高的问题
1.排查现网服务器cpu飙高问题的思路
1.查看java进程id ps -ef|grep java

2.使用top -Hp 进程id 查看cpu比较高的线程

3.执行jstack 进程id > threadStack进程id.log 命令

4.使用printf %x 线程的PID 命令,将线程的将线程的PID转为十六进制

5.在jstack导出的文件中查找第4步得到的十六进制线程pid
可以用vim的查找功能/0x1234,或是grep 0x1234 -A 20

根据线程堆栈跟踪代码,解决问题。
ps: 如果找不到,多执行几次步骤2、3(因为线程是不断变化的,所以需要手速)
2.提升排查问题效率
有没有发现上面的步骤很繁琐,而且非常考验个人手速
推荐工具(思路沿用上面的思路 工具化提升生产力)
1.下载&&解压工具
wget --no-check-certificate https://github.com/oldratlee/useful-scripts/archive/release-2.x.zip
unzip release-2.x.zip
cd useful-scripts-release-2.x/

2.执行工具
show-busy-java-threads -p <指定的Java进程Id>
更多姿势参照:https://github.com/adminkk/useful-scripts/blob/dev-2.x/docs/java.md#-show-busy-java-threads
当然阿里的arthas也有很多姿势 参照:https://alibaba.github.io/arthas/
如何优雅排查现网服务器cpu飙高的问题的更多相关文章
- 你要偷偷学会排查线上CPU飙高的问题,然后惊艳所有人!
GitHub 20k Star 的Java工程师成神之路,不来了解一下吗! GitHub 20k Star 的Java工程师成神之路,真的不来了解一下吗! GitHub 20k Star 的Java工 ...
- JVM进程cpu飙高分析
在项目快速迭代中版本发布频繁 近期上线报错一个JVM导致服务器cpu飙高 但内存充足的原因现象. 对于耗内存的JVM程序来而言, 基本可以断定是线程僵死(死锁.死循环等)问题. 这里是纪录一下排 ...
- 现网CPU飙高,Full GC告警
现网CPU飙高,Full GC告警 https://www.cnblogs.com/QG-whz/p/9647614.html 问题出现:现网CPU飙高,Full GC告警 CGI 服务发布到现网后, ...
- STORM在线业务实践-集群空闲CPU飙高问题排查
源:http://daiwa.ninja/index.php/2015/07/18/storm-cpu-overload/ 2015-07-18AUTHORDAIWA STORM在线业务实践-集群空闲 ...
- 一次FGC导致CPU飙高的排查过程
今天测试团队反馈说,服务A的响应很慢,我在想,测试环境也会慢?于是我自己用postman请求了一下接口,真的很慢,竟然要2s左右,正常就50ms左右的. 于是去测试服务器看了一下,发现服务器负载很高, ...
- CPU飙高,系统性能问题如何排查?
CPU飙高,系统性能问题如何排查? 原创 雍雍 阿里技术 2020-09-29 https://mp.weixin.qq.com/s/fzLcAkYwKhj-9hgoVkTzaw
- 【面试普通人VS高手系列】CPU飙高系统反应慢怎么排查?
面试过程中,场景类的问题更容易检测出一个开发人员的基本能力. 这不,一个小伙伴去阿里面试,第一面就遇到了关于"CPU飙高系统反应慢怎么排查"的问题? 对于这个问题,我们来看看普通人 ...
- 系统CPU飙高,怎么排查?
cpu是整个电脑的核心计算资源,对于一个应用进程来说,cpu的最小执行单元是线程. 导致cpu飙高的原因有几个方面: cpu上下文切换过多,对于cpu来说,同一时刻下每个cpu核心只能运行一个线程,如 ...
- 生产系统CPU飙高问题排查
现状 生产系统CPU占用过高,并且进行了报警 排查方法 执行top命令,查看是那个进程导致的,可以确定是pid为22168的java应用导致的 执行top -Hp命令,查看这个进程的那个线程导致cpu ...
随机推荐
- VisualStudio C++使用汇编函数
Visual Studio编写C++代码使用汇编函数 新建空项目 新建如下源文件 ;test.asm ;测试函数 三个数相加 ;.386 .model flat, c ;public test_ .c ...
- 如何使用Python 进行数据可视化
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 在进行数据分析的时候,经常需要将数据进行可视化,以方便我们对数据的认识和理解. 0,Matplotl ...
- linux ssh远程连接控制 linux(centOS) 口令、密钥连接
sshd服务提供两种安全验证的方法: 基于口令的安全验证:经过验证帐号与密码即可登陆到远程主机. 基于密钥的安全验证:需要在本地生成"密钥对"后将公钥传送至服务端,进行公共密钥的比 ...
- spring mvc 文件上传报“由于没有提供multi-part配置,无法处理parts”
在使用springMVC进行文件上传时,报了HTTP 500的错. 才发现原来是在springmvc.xml配置文件中,multipart中的id写错了. 错误代码: <!-- 配置文件解析器- ...
- JDK 15已发布,你所要知道的都在这里!
JDK 15已经在2020年9月15日发布!详情见 JDK 15 官方计划.下面是对 JDK 15 所有新特性的详细解析! 官方计划 2019/12/12 Rampdown Phase One (fo ...
- 第4.3节 Python中与迭代相关的函数
下面要介绍的enumerate.range.zip.reversed.sorted属于Python内置的函数或者类别,返回的对象都可通过迭代方法访问. 一. enumerate函数 1. ...
- PyQt(Python+Qt)学习随笔:QDockWidget停靠部件floating和features属性
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 1.floating属性 floating属性表示QDockWidge ...
- swpuCTF2019 web1 无列名注入
上周参加的swpuctf比赛第一道web题做了好久,在最后一个小时用非预期的方法做出来了,看了官方题解之后记录一下wp里面的无列名注入. 关于无列名注入可以看一下这篇链接 https://www.ch ...
- 用STM32定时器测量信号频率——测频法和测周法[原创cnblogs.com/helesheng]
工业测试与控制系统中,经常需要对未知信号的频率进行测试.对于10MHz以下的信号,用单片机(MCU)定时器完成这项任务显然是最常见和最佳的选择.目前性价比最高的单片机STM32拥有功能强大且数量众多的 ...
- 彻底搞懂js this指向问题
在这里必须要提一句的是,this指向是学习js必须要掌握的(必须),再开始之前先看底部的总结,然后回上面看例子便一目了然. 例子1: function a(){ var user = "Ta ...
