Chinaunix首页 | 论坛 | 博客
  • 博客访问: 167247
  • 博文数量: 47
  • 博客积分: 2520
  • 博客等级: 少校
  • 技术积分: 330
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-08 10:44
文章分类

全部博文(47)

文章存档

2010年(47)

我的朋友

分类:

2010-03-27 11:42:53

很少使用apache的dso跑php,一般使用prefork,prefork的工作原理 如果不用“--with-mpm”显式指定某种MPM,prefork就是Unix平台上缺省的MPM。它所采用的预派生子进程方式也是 Apache 1.3中采用的模式。prefork本身并没有使用到线程,2.0版使用它是为了与1.3版保持兼容性;另一方面,prefork用单独的子进程来处理不同的请求,进程之间是彼此独立的,这也使其成为最稳定的MPM之一。
,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足 MinSpareServers设置的值为止。这就是预派生(prefork)的由来。这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。
相对于prefork,worker是2.0 版中全新的支持多线程和多进程混合模型的MPM。由于使用线程来处理,所以可以处理相对海量的请求
只处理静态内容的时候,worker的效率高于prefork,动态内容,如PHP,因为PHP不是线程安全的,所以会造成不稳定,而且效率也不如prefork高,如果一定要用worker运行PHP,最好采用fastcgi来跑PHP。

阅读(1345) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~