openresty1.13 與 nginx+php7.0-fpm 壓測對比
阿新 • • 發佈:2018-11-12
為了驗證下 openresty 官網所說的比 nginx+php-fpm 的吞吐量要高,因此做了以下測試,本次測試伺服器硬體配置如下:
Dell latitude 3330
CPU: 4 core Intel(R) Core(TM) i5-3337U CPU @ 1.80GHz
MEM: 8GB
本次測試兩種架構下,伺服器都發送 "Hello,world!" 這一字串。
1. 100併發,50k請求
以下為 openresty 的壓測結果
➜ ~ ab -c 100 -n 50000 -q http://192.168.8.156:8090/ This is ApacheBench, Version 2.3 <$Revision: 1706008 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.8.156 (be patient).....done Server Software: openresty/1.13.6.2 Server Hostname: 192.168.8.156 Server Port: 8090 Document Path: / Document Length: 20 bytes Concurrency Level: 100 Time taken for tests: 2.743 seconds Complete requests: 50000 Failed requests: 0 Total transferred: 8400000 bytes HTML transferred: 1000000 bytes Requests per second: 18226.60 [#/sec] (mean) Time per request: 5.486 [ms] (mean) Time per request: 0.055 [ms] (mean, across all concurrent requests) Transfer rate: 2990.30 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 1 2 0.6 2 5 Processing: 1 3 0.7 3 10 Waiting: 1 2 0.6 2 10 Total: 4 5 0.5 5 15 Percentage of the requests served within a certain time (ms) 50% 5 66% 6 75% 6 80% 6 90% 6 95% 6 98% 6 99% 7 100% 15 (longest request)
以下為 nginx+php7.0-fpm 的壓測結果
➜ ~ ab -c 100 -n 50000 -q http://192.168.8.156:8080/test.php This is ApacheBench, Version 2.3 <$Revision: 1706008 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.8.156 (be patient).....done Server Software: nginx/1.15.3 Server Hostname: 192.168.8.156 Server Port: 8080 Document Path: /test.php Document Length: 13 bytes Concurrency Level: 100 Time taken for tests: 3.380 seconds Complete requests: 50000 Failed requests: 0 Total transferred: 7500000 bytes HTML transferred: 650000 bytes Requests per second: 14791.25 [#/sec] (mean) Time per request: 6.761 [ms] (mean) Time per request: 0.068 [ms] (mean, across all concurrent requests) Transfer rate: 2166.69 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.6 0 5 Processing: 2 6 1.2 6 14 Waiting: 1 6 1.3 6 14 Total: 4 7 1.1 6 15 WARNING: The median and mean for the initial connection time are not within a normal deviation These results are probably not that reliable. Percentage of the requests served within a certain time (ms) 50% 6 66% 7 75% 7 80% 8 90% 8 95% 9 98% 10 99% 11 100% 15 (longest request)
2. 1k併發,50k請求
以下為 openresty 的壓測結果
➜ ~ ab -c 1000 -n 50000 -q http://192.168.8.156:8090/ This is ApacheBench, Version 2.3 <$Revision: 1706008 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.8.156 (be patient).....done Server Software: openresty/1.13.6.2 Server Hostname: 192.168.8.156 Server Port: 8090 Document Path: / Document Length: 20 bytes Concurrency Level: 1000 Time taken for tests: 3.445 seconds Complete requests: 50000 Failed requests: 0 Total transferred: 8400000 bytes HTML transferred: 1000000 bytes Requests per second: 14514.61 [#/sec] (mean) Time per request: 68.896 [ms] (mean) Time per request: 0.069 [ms] (mean, across all concurrent requests) Transfer rate: 2381.30 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 10 24 22.2 23 1030 Processing: 7 35 30.5 33 772 Waiting: 5 27 30.7 25 771 Total: 27 58 37.1 57 1057 Percentage of the requests served within a certain time (ms) 50% 57 66% 60 75% 61 80% 62 90% 63 95% 64 98% 67 99% 75 100% 1057 (longest request)
以下為 nginx+php7.0-fpm 的壓測結果
➜ ~ ab -c 1000 -n 50000 -q http://192.168.8.156:8080/test.php
This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.8.156 (be patient).....done
Server Software: nginx/1.15.3
Server Hostname: 192.168.8.156
Server Port: 8080
Document Path: /test.php
Document Length: 13 bytes
Concurrency Level: 1000
Time taken for tests: 5.165 seconds
Complete requests: 50000
Failed requests: 14407
(Connect: 0, Receive: 0, Length: 14407, Exceptions: 0)
Non-2xx responses: 14407
Total transferred: 14962826 bytes
HTML transferred: 7579767 bytes
Requests per second: 9680.80 [#/sec] (mean)
Time per request: 103.297 [ms] (mean)
Time per request: 0.103 [ms] (mean, across all concurrent requests)
Transfer rate: 2829.14 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 7 28 114.9 14 1043
Processing: 7 34 64.3 23 2021
Waiting: 7 31 64.2 20 2021
Total: 14 62 133.9 37 3028
Percentage of the requests served within a certain time (ms)
50% 37
66% 42
75% 46
80% 48
90% 57
95% 72
98% 387
99% 1034
100% 3028 (longest request)
3. 總結
併發情況 | 吞吐量 | 平均完成時間 | 90%完成時間 |
c100 n50k | 18226.6/14791.25 | 5/7 | 6/8 |
c1k n50k | 14514.61/9680.80 | 58/62 | 63/57 |
以上資料對比格式為: openresty/nginx+php7.0-fpm
從上面對比情況可以看出,openresty 在併發情況下吞吐量的確要比 nginx+php7.0-fpm 高。