理论说明
为什么要阶段性测试
我理解的两方面原因
- 服务器解决突发流量能力和解决持续压力不是同一个问题,就像突发事件下(假设并发为100万)微博都可能挂,但是如果长期并发在100万 那微博肯定会有对应的策略,而我们要压的是服务器的一个持续服务能力
- 从阶段性压力测试最后的服务器资源报告中我们能有一个对比,比如刚开始是10% 后面逐步提高到20%-30% 逐步上升,如果是突然的一个流量,就很难区分是压测之前就使用了60%的CPU 还是测试后才提高到60%
实践
- 安装Jmeter的阶段性测试插件 Concurrency Thread Group
- plugins manager搜索Concurrency Thread Group 安装,重启
- 创建阶段性测试线程(以前都是创建线程组,现在改为另外一个)
- 参数配置
- 部署服务器监控软件 ServerAgent
这个软件的下载可以到 http://www.liangchan.net/liangchan/9872.html 免积分下载
启动startAgent.bat 或者 startAgent.
添加结果监听器组件 - 服务器监控配置
- 服务器监控结果图
特别注意
linux环境部署startAgent后, 本地Jmeter连不上 连telnet 都不通 报
ERROR k.a.j.p.PerfMonCollector: Perfmon plugin error: java.net.ConnectException: Connection timed out: connect
用下面的命令启动
./startAgent.sh --udp-port 0 --tcp-port 4443
为什么呢 ?找了很久才发现下面这个: