测者的性能测试手册:诊断优化找出消耗CPU...

提起性能测试,都是开始于脚本、压力,然后各种监控,最后的最后就是分析。每次到了最后一个环境,所有大牛都说是一个很复杂的过程一两句话说不清楚。让人陷入了无尽的遐想~~~~~。
今天,测试就告诉你如何找到Java消耗CPU的进程是怎么被找到的。

传统的手段

当遇见CPU性能飙升到接近100的时候,首先需要进入对应的服务器,然后通过如下一连串的动作找到最耗资源的罪魁祸首。

top发现最好是的进程

在shell界面中,输入top,找到最消耗CPU的那个Java进程。记录下PID号码。
然后通过:

  •                   
    • top -H -p pid
    命令查看对应PID进程下的线程,找到最耗资源的线程的PID。将其通过shell转成十六进制:

    •                   
      • printf ”%x\n“ pid

                  


      •           
      • %x,表示 十六进制,\n是换行
      应用jstack针对上面耗时的线程进行分析

      •                   
        • jstack PID(十六进制) 1> xxx.tmp
        然后打开xxx.tmp文件,搜索PID(十六进制)号码,下面的堆栈就是这个线程打出来的。排查问题就可以从这些堆栈信息开整找到问题。
        一个一劳永逸的工具
        show-busy-java-threads用于快速排查Java的CPU性能问题(top us值过高),自动查出运行的Java进程中消耗CPU多的线程,并打印出其线程栈,从而确定导致性能问题的方法调用。
        在服务器端,克隆项目: git clone git://github.com/oldratlee/useful-scripts.git

        •                   
          • cd useful-scripts
          然后就可以看到了show-busy-jaa-threads工具了。其中,该Github仓库有一个release发布分支,里面包含的都是功能稳定的脚本,建议使用的时候切换到该分支。方法如下:

          •                   
            • # 使用Release分支的内容

                        
            • git checkout release

                        


            •           
            • # 更新脚本

                        
            • git pull
            进入userful-scripts目录后,输入./show-busy-java-threads就可以使用这个工具进行上述消耗CPU的优化分析了。其他show-busy-java-threads工具的用法如下:
             
            其实优化是性能测试的根本目标,找到问题后分析问题才是关键,通过各种手段找到更详细的问题,找到更多的数据和RD一起分析。

            转自 https://www.testwo.com/article/1398
            文章仅作为分享 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值