全球主机交流论坛

标题: LNAMP里面apache用worker好还是prefork好? [打印本页]

作者: linuxer    时间: 2011-4-4 12:35
标题: LNAMP里面apache用worker好还是prefork好?
如题。求技术帝帮助。目前用的prefork,我在想对于LNAMP来说是不是worker对整体系统是不是更优化一些。
作者: 小夜    时间: 2011-4-4 12:36
等楼下回答,我是小白。连worker和prefork的区别都不知道。
作者: linuxer    时间: 2011-4-4 12:40
小夜会赚钱就行。
作者: bojjn    时间: 2011-4-4 12:41
prefork的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足 MinSpareServers设置的值为止。这就是预派生(prefork)的由来。这种模式能不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。

worker的工作原理是,由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild 线程数,各个线程独立地处理请求。同样,为了不在请求到来时再生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients设置了所有子进程中的线程总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。

各有优缺。楼主自行考虑

个人感觉prefork比较合适小内存的,如有不同意见,请参考本人签名档。谢谢

[ 本帖最后由 bojjn 于 2011-4-4 12:44 编辑 ]
作者: ender049    时间: 2011-4-4 12:42
其实这个和LNAMP关系不大吧,就和只用apache一样吧?你的动态处理还是都传到了apache那里啊
所以,看你的系统资源还有你的要求来设置咯
作者: lsylsy2    时间: 2011-4-4 12:54
原帖由 linuxer 于 2011-4-4 12:40 发表
小夜会赚钱就行。

作者: linuxer    时间: 2011-4-4 12:59
原帖由 ender049 于 2011-4-4 12:42 发表
其实这个和LNAMP关系不大吧,就和只用apache一样吧?你的动态处理还是都传到了apache那里啊
所以,看你的系统资源还有你的要求来设置咯


我就是想知道对于LNAMP整个体系来说,apache用worker还是prefork更有利于整个体系。毕竟LNAMP的apache只需要处理后端,配置上不需要像LAMP那样。
作者: mfch666    时间: 2011-4-4 13:14
worker模式我试过去编译,但没成功
最后我还是用prefork
没编译成功不知道哪里的问题
作者: opuer    时间: 2011-4-4 13:23
worker性能更好,但跑多站点会有安全隐患。
作者: cookie    时间: 2011-4-4 13:23
看看
作者: linuxer    时间: 2011-4-4 13:59
原帖由 opuer 于 2011-4-4 13:23 发表
worker性能更好,但跑多站点会有安全隐患。


多谢。我也觉得worker在lnamp整体上能更好提供效率。
作者: yaren    时间: 2011-4-4 14:01
目前在用worker,感觉内存控制上不错,效率较高。
作者: leven    时间: 2011-4-4 14:24
worker在unix和bsd等完全支持线程的系统上表现更抢眼,而linux上的话,可能没这么明显。
作者: Rey    时间: 2011-4-4 14:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: yculer    时间: 2011-4-4 14:56
请不要误导。
prefork不适合小内存。它的优点是稳定。但内存开销比worker大。
worker的内存控制有更多的可控性,在系统综合利用上比prefork强。
以下为两种推荐的apache服务器设置:
MPM prefork+mod_php+APC
MPM worker+fastcgi+Eaccelerator
在相同流量的情况下,第一种配置占用的内存将明显比第二种配置高。

原帖由 Rey 于 2011-4-4 14:40 发表
大内存高流量就用worker,prefork适合小内存的用户

另外,worker的php_mod好象有bug,我一直用prefork,没试过worker
原帖由 bojjn 于 2011-4-4 12:41 发表
prefork的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32 ...





欢迎光临 全球主机交流论坛 (https://hostloc.gdisk.cf/) Powered by Discuz! X3.4