JVM中如何排查CPU飙高的问题

1、虚拟机对象布局

  布局:对象头、实例数据、对齐填充
  对象头: Mark Word 8字节,hashcode值、GC分代信息、偏向锁信息;
                      Class Point  8字节,类指针 ,指向引用对象。
  实例数据:成员属性
  对象填充:对象字节/8倍数,如果不足的情况下,实现填充。如果实例数据类型为int,可能会有填充数据;如果类型为Integer,没有填充数据,因为Integer会自动填充(由4个字节填充到8个字节)

2、new一个java对象要多少字节?

  对象头+实例数据+填充数据
  在32位操作系统下,对象头占 8个字节;在64位操作系统下,对象头占16个字节,如果虚拟机压缩对象头,对象头只有12个字节。
  如果实例数据类型为int,可能会有填充数据;如果类型为Integer,没有填充数据,因为Integer会自动填充(由4个字节填充到8个字节)

3、如何诊断线程死锁问题

  JVM常用虚拟机命令
    jps 查看当前服务器上有哪些java进程
       jmap -heap 进程id 查看你的堆内存占用情况
  软件方式监控:
    Jconsole工具 https://www.cnblogs.com/pinp/p/16824269.html

4、如何诊断线上CPU飙升

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值