CPU占用高及问题排查
CPU异常往往是业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的,可以使用jstack来分析对应的堆栈情况,本文通过死循环方式重现CPU过高场景,并实例讲解CPU过高问题排查的方式。
1.环境
- Centos7 1核2GB
- Java8
2.模拟cpu占用高
创建 cpu-over-test 项目,添加了一个MyMainClazz类。里面有一个可是要 java -jar 执行的Main方法
模拟代码如下
public class MyMainClazz {public static void main(String[] args) {System.out.println("run start ...");while (true) {}}
}
cpu-over-test-1.0.jar
下载地址:https://pan.baidu.com/s/1-VTQ02qrb1l010MiFshHzw
密码:iqjl
3.启动模拟程序
- cpu-over-test.jar上传到服务器
- 启动命令
nohup java -jar cpu-over-test-1.0.jar &
启动成功示例:
启动成功后,几秒功夫就看到cpu 百分之百了
4.问题排查四步骤
4.1.查看占用CPU高的进程
top
如下图:整体CPU高达96.3%
可看出PID为 14855 的java进程占用cpu最高,达到了92.3%
4.2.查看进程中最耗CPU的子线程
使用命令:top -p 进程pid -H
top -p 14855 -H
如下图:可看出PID为14856的线程占用cpu最高,达到了92.3%
4.3最耗CPU的线程id转换为16进制
使用命令:printf “%x \n” 线程PID
printf "%x \n" 14856
4.4查看具体出现问题的代码位置
使用命令:jstack 进程pid | grep 线程ID转换为16进制值 -C20
jstack 14855 | grep 3a08 -C20
CPU占用高及问题排查相关推荐
- java 进程 cpu占用_JAVA进程CPU占用高的故障排查 – 运维那些事
问题分析: 1.程序属于CPU密集型,和开发沟通过,排除此类情况. 2.程序代码有问题,出现死循环,可能性极大. 解决过程: 1.根据top命令,发现PID为2633的Java进程占用CPU高达300 ...
- java模拟cpu返回_Java CPU 占用高 模拟及排查
jiankunking@ubuntu:~$ jstack 4463 |grep 1170 -A 30 "main" #1 prio=5 os_prio=0 tid=0x00007f ...
- SQLSERVER排查CPU占用高的情况
今天中午,有朋友叫我帮他看一下数据库,操作系统是Windows2008R2 ,数据库是SQL2008R2 64位 64G内存,16核CPU 硬件配置还是比较高的,他说服务器运行的是金蝶K3软件,数据库 ...
- java cpu高_Java中的CPU占用高和内存占用高的问题排查
下面通过模拟实例分析排查Java应用程序CPU和内存占用过高的过程.如果是Java面试,这2个问题在面试过程中出现的概率很高,所以我打算在这里好好总结一下. 1.Java CPU过高的问题排查 举个例 ...
- Linux中Python程序CPU占用高排查
Linux中Python程序CPU占用高排查,Linux中Python程序CPU占用高排查,Linux中Python程序CPU占用高排查 kafka-python==2.0.2和 gevent 新版本 ...
- Java吃CPU还是内存_Java中的CPU占用高和内存占用高的问题排查
下面通过模拟实例分析排查Java应用程序CPU和内存占用过高的过程.如果是Java面试,这2个问题在面试过程中出现的概率很高,所以我打算在这里好好总结一下. 1.Java CPU过高的问题排查 举个例 ...
- java进程CPU占用高如何排查-案例二
近期项目新版本上线遇到cpu冲高现象,依据之前的经验,把这次排查过程记录下. 这次排查参考了之前记录的经验,还是很有用的:java进程cpu占用高如何排查_停5s的博客-CSDN博客_java进程cp ...
- Python应用CPU占用高问题排查
Python应用CPU占用高问题排查 http://t.zoukankan.com/honglingjin-p-15159199.html公司购买了一套由外部供应商提供的呼叫中心系统,在使用的过程中发 ...
- java进程cpu占用高如何排查
问题: 公司参加HW期间,项目两台双活的jboss服务器频繁触发cpu利用率过高告警,cpu利用率长时间在90%以上. 排查思路: 第一步:在两台Linux服务器上,执行top命令,并按大写P以cpu ...
最新文章
- VScode中html怎么引入js,vscode中如何使用typescript,如何自动编译成js文件
- linux技巧----查找某个正在执行的脚本
- 背景选择器selector替换按钮默认背景
- Android的listview滚动时背景不让变黑解决办法
- CreateFile系类异步、并行(同一个串口发送接收)
- 十年测试之路的笔记分享
- 读书笔记:陈希孺:概率论与数理统计:2014.01.01
- 收藏一篇关于 用两个栈实现一个队列功能的帖子
- word如何批量居中图片
- Automation服务器不能创建对象--Excel.application
- Large-Scale Order Dispatch in On-Demand Ride-Hailing Platforms: A Learning and Planning Approach论文精读
- svn上传新项目的时候出现Can't set position pointer in file 'D:\***\*.rev':配额不足,无法完成请求的服务
- 通达信股本变迁文件(gbbq)解密方法
- CIDR地址规划方法
- html博客设计论文,个人博客网站(论文).doc
- 洛谷P1489 猫狗大战
- 56网首发2012APEC青创会主题微电影
- [NEXT] 时间管理实践
- 最有效的方法来增加在Map中的值
- kindle怎么导入电子书
热门文章
- pytorch与ROCM
- 【2017.11.15】色彩的奥秘
- lisp调用qleader端点_CAD常用命令大全全解.doc
- html 怎么播放avi视频,Uniboy跳舞激怒Kanavi,JDG让一追二,艰难战胜V5
- SqlCommand 添加参数-与DataAdapter更新
- 【转】二战,真实版越狱王!冯.维拉
- 问的人太多,受不了,提前开售了,美杜莎、比比东还有...
- oppo r11 android版本,oppo r11有几个版本?oppor11各版本区别对比介绍
- Excel中如何时间加减法
- BitLocker误锁,开机登录界面进不去了