线上CPU使用率,存储使用飙高定位方法和策略。

使用工具:top、jstack、jmap、eclipse MAT。

        线上机器突然CPU使用率飙高,发出告警,立马登录机器,使用top命令查看到底哪个进程占用的cpu使用率最高。

使用jstack pid > loop.txt 打印进程的堆栈信息,然后使用 top -Hp pid 查看进程中哪个线程 使用的cpu率最高,使用

printf "%x" threadId  打印出最占用线程的16进制数,将loop.txt下载本地,打开,用刚才打印出的16进制的threadId

匹配文件中的nid,来查到最占用线程的堆栈信息,查看发生了什么。在loop.txt的文件尾部,如果程序中有死锁,也会打印

出来。

    如果线上发生堆益出等错误,可以使用jmap命令,jmap -dump:live,format=b,file=dump201612271310..hprof pid 下载最耗

进程的堆文件,下载到本地,使用eclipse的mat工具,打开堆文件,进行相应的分析。

 

 

 

参考文章:

MAT的安装和使用:

https://blog.csdn.net/kas_uo/article/details/80179856

https://blog.csdn.net/kas_uo/article/details/80179856 

jvm 性能调优工具之 jstat:

https://www.jianshu.com/p/213710fb9e40

https://blog.csdn.net/lengyue309/article/details/80590119

jmap工具的使用:

https://www.jianshu.com/p/a4ad53179df3

堆文件的下载:

https://blog.csdn.net/amosjob/article/details/82988953

示例博客:

https://blog.csdn.net/zzti_erlie/article/details/85602307

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值