JavaCPU性能分析工具代码实例-创新互联

这篇文章主要介绍了Java CPU性能分析工具代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

创新互联公司专业为企业提供博山网站建设、博山做网站、博山网站设计、博山网站制作等企业网站建设、网页设计与制作、博山企业网站模板建站服务,10年博山做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

背景

有处理过生产问题的同学基本都能遇到系统忽然缓慢,CPU突然飙升,甚至整个应用请求不可用。当出现这种情况下,在不影响数据准确性的前提下,我们应该尽快导出jstack和内存信息,然后重启系统,尽快回复系统的可用性,避免用户体验过差。本文针对CPU飙升问题,提供该问题的排查思路,从而能够快速定位到某线程甚至某快代码导致CPU飙升,从而提供处理该问题的思路。

排查过程

  • 通过top命令查看cpu飙升的java进程pid
  • 通过ps -mp [pid] -o THREAD,tid,time查看该进程下所拥有的线程及各个线程占用cpu的使用率,并且记录CPU使用率过高的线程ID号
  • 将线程ID号转换为16进程的数值记为tid_hex
  • 使用jdk自带jstack监控命令
  • 使用命令jstack [pid] | grep tid_hex -A100命令输出该线程的堆栈信息
  • 根据堆栈信息分析代码。

通过以上步骤可以查找出导致cpu飙升的相关代码位置,然后对代码进行code review即可。

工具封装

以上步骤已经封装为脚本文件,通过以下脚本文件只需要指定进程ID即pid即可导出默认前5条导致CPU率过高的堆栈信息。

已上传github : 点我进入

./java-thread-top.sh -p pid

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻名称:JavaCPU性能分析工具代码实例-创新互联
网站地址:http://myzitong.com/article/deogpd.html