Apache性能测试
好久没有更新博客了,最近实在太忙,由于电脑配置比较好,一时冲动用ab测试了一把Apache。得出一些数据,希望对大家有帮助。
Ab是apache附带的组件非常易于使用,ab可以直接再web服务器上面使用,直接发送请求到apache上。测试的响应时间正是服务器的时间,不包括网络传输和本地用户cpu的时间。
测试参数:
apache:
Server version: Apache/2.2.15 (Unix)
linux:
Linux version 2.6.31.5-127.fc12.i686.PAE
cpu:
2010全新英特尔® 酷睿™ i5-520M 处理器(基本工作频率2.40GHz,最高工作频率2.93GHz, 2C/4T, 3MB L3缓存)
Memory:
4G
并发数为10时的测试结果
ab -n1000 -c10 http://127.0.0.1/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 127.0.0.1 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: Apache/2.2.15
Server Hostname: 127.0.0.1
Server Port: 80
Document Path: /
Document Length: 44 bytes
Concurrency Level: 10
Time taken for tests: 0.253 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 295176 bytes
HTML transferred: 44176 bytes
Requests per second: 3957.39 [#/sec] (mean)
Time per request: 2.527 [ms] (mean)
Time per request: 0.253 [ms] (mean, across all concurrent requests)
Transfer rate: 1140.75 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.4 1 3
Processing: 1 1 0.5 1 3
Waiting: 0 1 0.5 1 3
Total: 1 2 0.8 2 5
Percentage of the requests served within a certain time (ms)
50% 2
66% 3
75% 3
80% 3
90% 3
95% 4
98% 4
99% 4
100% 5 (longest request)
对不同并发用户吞吐率测试结果
并发用户数 | 吞吐率(reqs/s) | 请求等待时间(ms) | 请求处理时间(ms) |
1 | 4070.95 | 0.246 | 0.246 |
2 | 3434.99 | 0.582 | 0.291 |
5 | 4255.36 | 1.175 | 0.235 |
10 | 4836.95 | 2.435 | 0.243 |
20 | 8008.52 | 2.06 | 0.103 |
30 | 8297.79 | 3.979 | 0.133 |
50 | 8868.31 | 7.483 | 0.15 |
100 | 8373.04 | 9.998 | 0.1 |
150 | 4587.07 | 32.552 | 0.217 |
200 | 1262 | 158.479 | 0.792 |
500 | 389.62 | 1283.305 | 2.567 |
1000 | 329.42 | 3035.606 | 3.036 |
测试结果分析
通过视图可以看出,随着并发数的不断增加,服务器的吞吐量开始不段升高,到达50时吞吐量最高,并发数大于50后吞吐量不断下降,当大于100时吞吐量急极下降。
通过视图可以看到服务器平均请求处理时间随着并发数的增加的变化在并发数150之前请求时间变化不大,当并发数大于150后处理时间不断升高,后面就越来越慢。
通过上图可以看出用户请求等待时间随着并发数的增加的变化情况,并发在150之前等待时间变化不大,当大于150后时间不断升高。
从上面分析情况可以看出,在我本机测试时当用户并发数达到100以上情况将不太理想,不过不同的硬件配置会有不同的结果。
总结
不同场景下面可以测试结果不一样,不过曲线图走势一样。
Apache虽然是非常成熟的WEB服务器,后面可以考虑使用其他web服务器
lighttpd,nginx可以能是比较好的代替品,到时我会再用数据分析下。