java应用CPU占用过高分析、C2 Compiler Thread高CPU占用分析
文章目录
- 1. 查找进程下占用过高CPU的线程
- 1.1 查找应用对应的pid
- 1.2 查看哪个线程cpu占用高,确定对应的线程id:
- 1.3 计算线程id的十六进制值
- 1.4 打印线程堆栈内容
- 2. 高CPU分析 : C2 Compiler Thread
- 2.1 概念
- 2.2 .解决方案
1. 查找进程下占用过高CPU的线程
1.1 查找应用对应的pid
jps
1.2 查看哪个线程cpu占用高,确定对应的线程id:
top -H -p <pid>
1.3 计算线程id的十六进制值
printf "%x\n" <thread_id>
1.4 打印线程堆栈内容
jstack <pid> | grep <线程id十六进制值> -A 30
参数: -A 30 表示向下打印30行
2. 高CPU分析 : C2 Compiler Thread
2.1 概念
C2 Compiler 是JVM在server模式下字节码编译器,JVM启动的时候所有代码均处于解释执行模式,当某些代码被执行到一定阈值次数,热点代码就会被 C2 Compiler编译成机器码,执行效率大幅提升。
编译热点代码,C2 Compiler需要频繁占用CPU来运行,当热点代码被编译成机器代码后,C2 Compiler不再长期占用CPU
2.2 .解决方案
(1) 最直接有效的方法是预热。使用压测工具让C2 Compiler预先将热点代码编译成机器码
(2) 设置JVM启动参数:-XX:CICompilerCount=threads
默认是2, 可以设置4或6。对于CPU“高而不满”的情况会有用,缩短占用时间
java应用CPU占用过高分析、C2 Compiler Thread高CPU占用分析相关推荐
- jstack: Java占用高CPU分析之- C2 Compiler Thread
1. 现象 应用刚上线时发现Java进程占用了大量的CPU份额,但过了几分钟后会降下来(流量没变的情况下),因为已经做了负载均衡,于是拿一台实例重新部署代码上线来分析.具体分析步骤参考另外一篇文章&l ...
- java接口经常变动前端怎么办_Java进程故障排查(CPU资源占用高,接口响应超时,功能接口停滞等)...
故障分析 # 导致系统不可用情况(频率较大): 1)代码中某个位置读取数据量较大,导致系统内存耗尽,进而出现Full GC次数过多,系统缓慢: 2)代码中有比较消耗CPU的操作,导致CPU过高,系统运 ...
- java cpu io高_服务器负载过高问题分析-不是cpu高负载也不是IO负载如何处理(阿里 几乎是必考题)...
关于top命令 经常问load average 参考:load average 定义(网易面试) 问题现象: 1,top命令查询服务器负载达到2.0-5之间,tomcat的cpu使用率达到104% l ...
- Win8 CPU占用率高,服务主机:本地服务进程占用CPU高
转自软迷 Win8消费者预览版放出来之后,软迷也是立马在自己的电脑上安装了,安装完成之后发现Win8 CPU占用率高,打开任务管理器,其中有几个系统进程:如服务主机:本地服务(对等网络).COM Su ...
- java单核cpu飙高考死_java多线程在单核CPU上,还是需要volatile synchronized吗?
本来不想回答的,可是看了这么多答案,有的不是特别靠谱.斗胆写个粗略的回答. 首先,JMM是不区分是否JVM到底是运行在单核处理器.单核超线程处理器.多核处理器,抑或是多核超线程处理器上的.就是说,Ja ...
- 高cpu_再一次生产 CPU 高负载排查实践
(给ImportNew加星标,提高Java技能) 作者:crossoverJie segmentfault.com/a/1190000019507028 前言 前几日早上打开邮箱收到一封监控报警邮件: ...
- Java基础之《JVM性能调优(14)—CPU性能调优》
一.linux cpu使用率100%的性能分析调优 1.问题 现在你接到运营电话说"线上系统很卡",你马上登陆linux服务器,你会做哪些动作,解决系统卡顿的问题? 2.top命令 ...
- centos中bash占用cpu_Docker 多种维度限制容器可用的 CPU
来源:http://t.cn/EfDPgJi 默认情况下容器可以使用的主机 CPU 资源是不受限制的.和内存资源的使用一样,如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用 C ...
- 最全Java架构师130面试题:微服务、高并发、大数据、缓存等中间件
一.数据结构与算法基础 · 说一下几种常见的排序算法和分别的复杂度. · 用Java写一个冒泡排序算法 · 描述一下链式存储结构. · 如何遍历一棵二叉树? · 倒排一个LinkedList. · 用 ...
最新文章
- P4报名截止|引爆1.1万亿基因测序市场,精准医学50+殿堂级专家议程大曝光
- (chap6 Http首部) 请求首部字段 AuthorizationExpectFromHostIf-Match
- Linux / pthread_create() 函数所使用的线程函数为什么必须是静态函数?
- influxdb的可视化界面
- Leetcode每日一题:844.backspace-string-compare(比较含退格的字符串)
- 北京大学生物信息学(3)
- c语言中static 用法
- Linux: 多线程
- IBM x3850 x5U盘启动或光驱启动不起作用
- JavaScript实现简单星星闪烁特效
- django improperly configured
- 局域网添加DNS服务器进行域名解析
- 安卓性能优化之启动优化
- 全方位构建信创生态体系,焱融科技完成海光 CPU 生态兼容性认证
- 常见的行业认证和资质清单介绍
- Android SnackBar
- AJP:22q11.2缺失综合征青少年gamma频带反应和远程通信中断的异常发育模式
- JavaScript-牛客网-剑指offer(1-10)题解
- python中的阶乘,python中阶乘怎么表示
- 中国首届微博开发者大会杨卫华演讲