硬件配置与前文相同
windows版本为2008 R2,新装,没更新。
Apache参数
<IfModule mpm_winnt_module> ThreadsPerChild 1900 MaxRequestsPerChild 0 </IfModule>
先来看看IIS+PHP的性能吧,你的信仰可能要崩塌了:
Server Software: Microsoft-IIS/7.5 Server Hostname: api.tingtao.org Server Port: 80 Document Path: /test.php Document Length: 79246 bytes Concurrency Level: 1000 Time taken for tests: 67.775 seconds Complete requests: 10000 Failed requests: 382 (Connect: 0, Receive: 0, Length: 382, Exceptions: 0) Total transferred: 794109618 bytes HTML transferred: 792459618 bytes Requests per second: 147.55 [#/sec] (mean) Time per request: 6777.488 [ms] (mean) Time per request: 6.777 [ms] (mean, across all concurrent requests) Transfer rate: 11442.26 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 7 9.9 6 430 Processing: 35 6499 1235.8 6749 9678 Waiting: 5 3345 1990.3 3267 6758 Total: 38 6506 1235.8 6755 9684
我也承认,吓到我了,于是又测了一次:
Server Software: Microsoft-IIS/7.5 Server Hostname: api.tingtao.org Server Port: 80 Document Path: /test.php Document Length: 79246 bytes Concurrency Level: 1000 Time taken for tests: 67.474 seconds Complete requests: 10000 Failed requests: 308 (Connect: 0, Receive: 0, Length: 308, Exceptions: 0) Total transferred: 794109678 bytes HTML transferred: 792459678 bytes Requests per second: 148.21 [#/sec] (mean) Time per request: 6747.386 [ms] (mean) Time per request: 6.747 [ms] (mean, across all concurrent requests) Transfer rate: 11493.31 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 7 3.6 6 108 Processing: 48 6413 1179.6 6737 8068 Waiting: 5 2199 1346.8 1994 6556 Total: 50 6419 1179.6 6744 8074 Percentage of the requests served within a certain time (ms) 50% 6744 66% 6749 75% 6750 80% 6751 90% 6753 95% 6867 98% 7049 99% 7082 100% 8074 (longest request)
而且带宽是跑满的,而且我连驱动都没装,而且我还想起来,我还没用内存盘……
然后看看静态文件能力:
Server Software: Microsoft-IIS/7.5 Server Hostname: api.tingtao.org Server Port: 80 Document Path: /test.txt Document Length: 138819 bytes Concurrency Level: 1000 Time taken for tests: 164.262 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 1390660000 bytes HTML transferred: 1388190000 bytes Requests per second: 60.88 [#/sec] (mean) Time per request: 16426.239 [ms] (mean) Time per request: 16.426 [ms] (mean, across all concurrent requests) Transfer rate: 8267.66 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 16 142.9 7 2778 Processing: 112 16048 1428.0 16406 25049 Waiting: 9 3162 1910.7 3147 7620 Total: 118 16064 1443.9 16413 25553 Percentage of the requests served within a certain time (ms) 50% 16413 66% 16421 75% 16445 80% 16449 90% 16466 95% 16475 98% 16556 99% 17109 100% 25553 (longest request)
不出意外,效率很不错。
下面看看Apache了。
静态文件:
Server Software: Apache Server Hostname: api.tingtao.org Server Port: 80 Document Path: /test.txt Document Length: 138819 bytes Concurrency Level: 1000 Time taken for tests: 158.955 seconds Complete requests: 10000 Failed requests: 3 (Connect: 3, Receive: 0, Length: 0, Exceptions: 0) Total transferred: 1390570000 bytes HTML transferred: 1388190000 bytes Requests per second: 62.91 [#/sec] (mean) Time per request: 15895.509 [ms] (mean) Time per request: 15.896 [ms] (mean, across all concurrent requests) Transfer rate: 8543.16 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 15 96.8 6 3004 Processing: 340 15365 3715.8 15563 26677 Waiting: 2 2494 2212.3 1523 10700 Total: 348 15380 3717.9 15809 26684 Percentage of the requests served within a certain time (ms) 50% 15809 66% 16726 75% 17159 80% 17459 90% 18427 95% 19055 98% 23515 99% 26047 100% 26684 (longest request)
测试了2次,结果基本一样,带宽一样跑满。
php:
Server Software: Apache Server Hostname: api.tingtao.org Server Port: 80 Document Path: /test.php Document Length: 60888 bytes Concurrency Level: 1000 Time taken for tests: 163.956 seconds Complete requests: 10000 Failed requests: 1812 (Connect: 0, Receive: 0, Length: 1812, Exceptions: 0) Non-2xx responses: 954 Total transferred: 552428140 bytes HTML transferred: 551077118 bytes Requests per second: 60.99 [#/sec] (mean) Time per request: 16395.638 [ms] (mean) Time per request: 16.396 [ms] (mean, across all concurrent requests) Transfer rate: 3290.39 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 1.6 1 9 Processing: 10 14249 21204.2 3040 64303 Waiting: 3 14130 21228.5 3005 64132 Total: 10 14250 21204.0 3041 64304 Percentage of the requests served within a certain time (ms) 50% 3041 66% 10028 75% 19429 80% 27263 90% 62243 95% 64043 98% 64086 99% 64098 100% 64304 (longest request)
php也是测试了2次。
行吧,最终结果大致就这样了,连我都没想到,IIS完爆其他对手……
然后我想起来在2008发布的时候ms吹牛B说fastcgi在2008上面效率高于对手50%,当时我记得自己也测试过,结论也差不多,所以并不能认为人家是在吹牛B。只是没想到不仅仅是50%这么简单,直接翻倍了……
这几次的测试,首先win平台是很老的系统版本,主要是因为这渣渣机器运行新版系统我估计要崩……
接着呢,win平台我忘记要把文件放在内存里了,所以文件系统效率应该会低一些。
然后win平台的php都是最新版,而ubuntu的是7.4.3,FB的是7.4.8,这个可能会略有差异,但我估计主版本相同,应该差别不大。
最后,暴力优化过的Apache,用内存300多M,有点暴力: