Btrace在性能测试中的使用

在测试环境安装btrace,可以用于排查接口调用的时间,分析测试点的瓶颈。以下简单介绍安装和使用。

1.      安装:btrace是一个开源代码软件,下载安装的地址在:http://kenai.com/projects/btrace/downloads/directory/releases/release-1.2.1,下载得到tar.gz包,在应用服务器上使用sudo–u admin –H rz命令上传tar.gz包,如果使用该命令时传输失败,比如传输不完全等,则使用sudo –u admin –H rz –be命令(为什么要用admin账号的权限是因为我们启动应用用的账号都是admin,如果用root账号创建的文件,admin账号启动的应用可能没有权限访问该文件)。上传完成后解压,tar zvxf xxx.tar.gz,解压后会看到:bin、build、docs、samples等目录,bin目录下是windows的启动bat脚本和linux启动的shell脚本,build下面是btrace源码打出来的jar包,docs目录下是btrace的使用文档,samples目录下是一些btrace脚本的例子。安装完成。如果要查看btrace的源代码,需要先安装版本控制工具Mercurial客户端,btrace的源代码使用Mercurial管理,地址在:http://mercurial.selenic.com/。下载时如果报如下错误:abort:hg.kenai.com certificate error: certificate is for kenai.com(configurehostfingerprint 9c:f6:c3:1f:14:bc:98:82:de:2a:5b:6e:d2:ce:61:5d:95:e1:65:a5 oruse --insecure to connect insecurely)。则可以改用hg clone--insecurehttps://hg.kenai.com/hg/btrace~hg命令来下载。

2.      使用:编写btrace脚本,通常我们需要编写的脚本是打点某个方法的调用时间,一个例子如下: 


 写好了脚本之后,同样用rz命令上传到btrace/bin目录下。执行之前需要知道当前需要监控的代码所在java进程的进程id,可以使用sudo jps或者ps –ef| grep java两个命令获取,得到进程id后,执行:sudo –u admin –H sh btrace 9926 CTest.java,当应用执行com.taobao.department.web.module.control.BrandsellFloorList的execute方法并返回后,会打印出诸如“floor execute Time taken ms 100”的语句,从而能够非常直观得看到方法调用的时间,通过多几个时间打点,我们很容易得能排查得出接口中调用时间比较长得异常代码块。

3.      想法:通过排查应用中接口代码的调用时间分布来排查性能瓶颈是日常性能测试中最常用的方式,这种方式到目前为止经历了几种方式的演变:应用中日志打点,输出时间---àBtrace脚本。相比于日志打点,btrace脚本有着明显的优势:动态、方便并且能给那些我们无法修改源代码的第三方jar包增加打点,但是,我们始终还是要写btrace脚本,如果有多个方法需要监控,脚本数量会比较大。使用btrace开发的原理,我们可以把动态时间打点以工具的形式提供出来。类似以下的功能:在工具上选择远程的进程,输入进程中的接口名和方法名,选择打点,然后得到该接口调用时间的实时曲线图表,这看起来就美妙多了。

你可能感兴趣的:(Btrace在性能测试中的使用)