我开始在JMeter中编写一些基本测试,并且感到惊讶的是测量结果与Apache ab中的测量结果差别很大。JMeter或Apache ab可以获得正确的测量结果吗?
我有一个千兆局域网连接运行Nginx的英特尔i7服务器和运行JMeter或ab的i5测试机器。最初,我只是测试开箱即用的Nginx主页响应率。
ab -c 1 -n 100 http://testserver.local/
给
Document Path: /
Document Length: 151 bytes
Concurrency Level: 1
Time taken for tests: 0.078 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 38400 bytes
HTML transferred: 15100 bytes
Requests per second: 1280.77 [#/sec] (mean)
Time per request: 0.781 [ms] (mean)
Time per request: 0.781 [ms] (mean, across all concurrent requests)
Transfer rate: 480.29 [Kbytes/sec] received
这个结果是一致地重现,+/-百分之几。
在JMeter的,我具有包含1-用户100环线程组:
- HTTP头管理器设置的Accept-Encoding:gzip的
- 一个HTTP GET /采样
- 总结报告收听者
只有100个样本,每次运行结果都不一致。但最令人吃惊的事实是吞吐量低至每秒40个请求(不是1280个)。最高的记录率是1030,这只有当我增加到10000个样本时才能达到。
我是否认为JMeter是简单负载测试的错误工具,因为它的开销太高,无法进行准确的测量?
+1,但我认为你的结论是正确的。 – 2012-04-21 15:58:02