Apache Prefork工作得很快,然后Worker MPM为静态内容提供服务吗?

我发现有很多与Apache工作相关的东西MPM工作比Prefork MPM快,我知道nginx是另一种select,但我想坚持在Apache上使用htaccess和一些其他function,所以我做了比较使用Apache基准testing服务静态内容(bg.png)文件(大小= 232KB),我很惊讶地看到,Apache的prefork服务静态内容比工人更快的结果,差异不是那么大,但结果让我怀疑,我不是对下面的testing做出决定,请指导和帮助我。

两个testing都是在同一台服务器上使用loopback接口(127.0.0.1)localhost来完成的,以避免与networking/带宽延迟相关的疑惑,而且也不保持活动状态。

1)使用apache prefork进行testing

prefork MPM

StartServers 5 MinSpareServers 3 MaxSpareServers 5 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000

ab -n 1000 -c 900 http://localhost/bg.png

文档path:/bg.png文档长度:235354字节

并发级别:900testing时间:1.053秒完成请求:1000失败请求:0写错误:0总传输:235983024字节HTML传输:235738292字节每秒请求数:949.68 [#/ sec] 947.690 [ms](mean)每个请求的时间:1.053 [ms](所有并发请求的平均值)传输速率:收到218855.25 [KB / sec]

连接次数(ms)最小平均值[+/- sd]中位数最大值连接:0 111 295.5 1 1000处理:3 137 207.8 59 631等待中:0 136 208.1 58 631总计:22 248 334.4 73 1024

(ms)50%73 66%79 75%660 80%664 90%672 95%1019 98%1022 99%1023 100%1024(最长请求)

2)使用Worker MPM进行testing

ThreadLimit 200 StartServers 3 ServerLimit 25 MaxClients 2000 MinSpareThreads 50 MaxSpareThreads 200 ThreadsPerChild 100 MaxRequestsPerChild 0

文档path:/bg.png文档长度:235354字节

并发级别:900testing时间:1.061秒完成请求:1000失败请求:0写入错误:0总传输:264421004字节HTML传输:264146992字节每秒请求数:942.39 [#/ sec] 955.018 [ms](mean)每个请求的时间:1.061 [ms](所有并发请求的平均值)传输速率:243347.56 [Kbytes / sec]

连接次数(ms)最小平均值[+/- sd]中位数最大值连接:0 58 158.4 37 1003处理:31 255 330.6 88 884等待中:0 223 336.7 50 870总计:68 313 354.1 112 1034

(ms)50%112 66%150 75%900 80%905 90%920 95%921 98%1032 99%1033 100%1034(最长请求)

以下是差异

Prefork统计

testing时间: 1.053秒传输总数:235983024字节HTML传输:235738292字节每秒请求数:949.68 [#/ sec](平均)每个请求的时间: 947.690 [ms](平均)每个请求的时间: 1.053 [ms] (意思是跨所有并发请求)传输速率:收到218855.25 [千字节/秒]

工人统计

testing时间: 1.061秒总传输时间:264421004字节HTML传输时间:264146992字节每秒请求数:942.39 [#/ sec](mean)每个请求的时间: 955.018 [ms](mean)每个请求的时间: 1.061 [ms] (意味着跨所有并发请求)传输速率:243347.56 [千字节/秒]收到

根据以上统计

testing所花费的时间+每个请求的时间less于prefork和worker。 所以请指导和build议,prefork是最好的服务静态内容?