文章目录

  • 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占用分析相关推荐

  1. jstack: Java占用高CPU分析之- C2 Compiler Thread

    1. 现象 应用刚上线时发现Java进程占用了大量的CPU份额,但过了几分钟后会降下来(流量没变的情况下),因为已经做了负载均衡,于是拿一台实例重新部署代码上线来分析.具体分析步骤参考另外一篇文章&l ...

  2. java接口经常变动前端怎么办_Java进程故障排查(CPU资源占用高,接口响应超时,功能接口停滞等)...

    故障分析 # 导致系统不可用情况(频率较大): 1)代码中某个位置读取数据量较大,导致系统内存耗尽,进而出现Full GC次数过多,系统缓慢: 2)代码中有比较消耗CPU的操作,导致CPU过高,系统运 ...

  3. java cpu io高_服务器负载过高问题分析-不是cpu高负载也不是IO负载如何处理(阿里 几乎是必考题)...

    关于top命令 经常问load average 参考:load average 定义(网易面试) 问题现象: 1,top命令查询服务器负载达到2.0-5之间,tomcat的cpu使用率达到104% l ...

  4. Win8 CPU占用率高,服务主机:本地服务进程占用CPU高

    转自软迷 Win8消费者预览版放出来之后,软迷也是立马在自己的电脑上安装了,安装完成之后发现Win8 CPU占用率高,打开任务管理器,其中有几个系统进程:如服务主机:本地服务(对等网络).COM Su ...

  5. java单核cpu飙高考死_java多线程在单核CPU上,还是需要volatile synchronized吗?

    本来不想回答的,可是看了这么多答案,有的不是特别靠谱.斗胆写个粗略的回答. 首先,JMM是不区分是否JVM到底是运行在单核处理器.单核超线程处理器.多核处理器,抑或是多核超线程处理器上的.就是说,Ja ...

  6. 高cpu_再一次生产 CPU 高负载排查实践

    (给ImportNew加星标,提高Java技能) 作者:crossoverJie segmentfault.com/a/1190000019507028 前言 前几日早上打开邮箱收到一封监控报警邮件: ...

  7. Java基础之《JVM性能调优(14)—CPU性能调优》

    一.linux cpu使用率100%的性能分析调优 1.问题 现在你接到运营电话说"线上系统很卡",你马上登陆linux服务器,你会做哪些动作,解决系统卡顿的问题? 2.top命令 ...

  8. centos中bash占用cpu_Docker 多种维度限制容器可用的 CPU

    来源:http://t.cn/EfDPgJi 默认情况下容器可以使用的主机 CPU 资源是不受限制的.和内存资源的使用一样,如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用 C ...

  9. 最全Java架构师130面试题:微服务、高并发、大数据、缓存等中间件

    一.数据结构与算法基础 · 说一下几种常见的排序算法和分别的复杂度. · 用Java写一个冒泡排序算法 · 描述一下链式存储结构. · 如何遍历一棵二叉树? · 倒排一个LinkedList. · 用 ...

最新文章

  1. P4报名截止|引爆1.1万亿基因测序市场,精准医学50+殿堂级专家议程大曝光
  2. (chap6 Http首部) 请求首部字段 AuthorizationExpectFromHostIf-Match
  3. Linux / pthread_create() 函数所使用的线程函数为什么必须是静态函数?
  4. influxdb的可视化界面
  5. Leetcode每日一题:844.backspace-string-compare(比较含退格的字符串)
  6. 北京大学生物信息学(3)
  7. c语言中static 用法
  8. Linux: 多线程
  9. IBM x3850 x5U盘启动或光驱启动不起作用
  10. JavaScript实现简单星星闪烁特效
  11. django improperly configured
  12. 局域网添加DNS服务器进行域名解析
  13. 安卓性能优化之启动优化
  14. 全方位构建信创生态体系,焱融科技完成海光 CPU 生态兼容性认证
  15. 常见的行业认证和资质清单介绍
  16. Android SnackBar
  17. AJP:22q11.2缺失综合征青少年gamma频带反应和远程通信中断的异常发育模式
  18. JavaScript-牛客网-剑指offer(1-10)题解
  19. python中的阶乘,python中阶乘怎么表示
  20. 中国首届微博开发者大会杨卫华演讲

热门文章

  1. 扫脸付、VR付实现了, “KongFu”空付还远吗?
  2. 从虚拟内存的角度理解一段汇编
  3. PMBOK(第六版) PMP笔记——《第十三章 项目干系人管理》
  4. HD2014 青年歌手大奖赛_评委会打分
  5. Oracle BPM 问题
  6. 计算机视觉是什么,未来前景怎么样?
  7. BUAA小型图书管理系统
  8. VBA: 什么是多维数组:从4维数组说起。兼3维数组和数组嵌套的区别
  9. MySQL:limit分页公式、总页数公式
  10. java程序设计有理数,《Java程序设计》复习题