是否有这样的场景:公司需要选型某类产品,需要你来做压力测试。运维部门分给你几台服务器,剩下的自己搞定。
请问:你是如何做压力测试的?如何获取性能参数、系统负载的?如果需要测试的产品是分布式的,需要N台client压M台Server,又怎么办?数据分析如何做?
你是否是每次手动启动client和server,手动使用excel复制粘贴所有的数据?或者通过截图的方式从ganglia上截取服务器负载等情况?
理想中的压力测试应该是这样的:
你是否想要一个工具,将测试代码放到一定的目录下,执行启动命令,系统自动启动server、启动压力测试程序、定期收集数据。测试完成后自动收集所有服务器数据并生成报告?
perf-runner可以方便的解决上述问题。
使用方法
1、安装
git clone git@github.com:haitaoyao/perf-runner.git
画图需要使用gnuplot,同步文件需要rsync,仅仅在master安装:apt-get install gnuplot-x11 rsync
2、部署压力测试程序
一个性能测试需要一个名称。部署时将整个目录放在deploy目录下。由于可能会涉及多个服务器组的启动,因此,perf-runner引入test-unit概念,一个test-unit是一组服务器,需要部署同样的代码或启动同样的程序。比如,测试多台memcached,所有的memcached server作为一个test-unit,先于测试代码启动;测试代码在memcached-server全