freebsd下apache的worker/prefork模式性能的简单对比

本文通过在特定配置下的Apache服务器对比了worker与prefork两种模型的表现。结果显示,在低并发场景下prefork模型表现出更好的性能,而在高并发场景下worker模型更显优势。此外,worker模式在支持SSL时性能会有所下降。

worker/prefork是在apache中使用最多的模型。worker为多进程多线程形式,prefork为多进程形式。worker/prefork的在特定的环境和应用下都有其自身的优缺点,无法在模糊的环境下对起进行比较。
    在freebsd 6.2;apache 2.2.3;双CPU的机器;2G内存的情况下;应用于网站服务下进行测试

    prefork一般调整性能的参数有:StartServers、MinSpareServers 、MaxSpareServers 、MaxClients。
    worker一般调整性能的参数有:tartServers、MaxClients、ServerLimit、MinSpareThreads 、MaxSpareThreads 、ThreadsPerChild,建议要求MaxClients为ThreadsPerChild整数倍,否则服务启动的时候会有警告。
   有如下2条测试命令:
    1)ab -n SUM -c CUR http://127.0.0.1:80/see.php       (see.php内容很简单,只有:<?php?>)
    2)ab -n SUM -c CUR http://127.0.0.1:80/                    (SUM 为总请求数,CUR 为并发数)

    测试结果:
    1)worker模式下随ThreadsPerChild值减少,性能有了较大的提升,到最后基本稳定。(进程内线程过多的时候,线程调度时间会大大的增加)
    2)当CUR 只在百档位的时候,prefork性能对请求的处理要明显高于worker。
    3)prefork对调用php的影响比worker模式要大。(线程资源共享优势)
    4)prefork要比worker有更强健的稳定性,特别是CUR 为上K档位时,worker表现的很不好,特别是处理请求简单请求的时候。
    5)worker模式下,如果支持SSL则性能也有明显的下降,同时会降低稳定性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值