关于Apache的两种工作模式prefork和worker-阿里云开发者社区

开发者社区> 技术小甜> 正文

关于Apache的两种工作模式prefork和worker

简介:
+关注继续查看

prefork模式

这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。

这个MPM具有很强的自我调节能力,只需要很少的配置指令调整。最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以致需要使用的内存超出物理内存的大小。

worker模式

此多路处理模块(MPM)使网络服务器支持混合的多线程多进程。由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM。但是,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。

控制这个MPM的最重要的指令是,控制每个子进程允许建立的线程数的ThreadsPerChild指令,和控制允许建立的总线程数的MaxClients指令。


从定义上看,在PV流量下worker模式明显优于prefork,但事实上并未如此,下面引用PHP 官方文档


PHP只是一个粘合剂。他将众多的第三方模块儿库粘结到一起,然后提供给使用者一个直观易懂的统一语言接口,让我们觉得他们就是一个整体。PHP的易用和强大要依赖于一个稳定和强大的运行平台。他需要操作系统,Web服务器和第三方模块儿库融合到一起。他们当中任何一个挂了,PHP都需要通过各种途径迅速找到问题,并解决。如果我们使用一种没有完全隔离运行线程,没有完全隔离内存空间,并且没有一个强大的记录每个需求的容器的Web服务器来运行PHP时,PHP就会变的很容易出问题。

如果我们想使用一个多线程多进程的模块儿,可以关注一下PHP的FastCGI的配置。在FastCGI模式下,PHP运行在自己的内存空间里。

官方原文:

PHP is glue. It is the glue used to build cool web applications by sticking dozens of 3rd-party libraries together and making it all appear as one coherent entity through an intuitive and easy to learn language interface. The flexibility and power of PHP relies on the stability and robustness of the underlying platform. It needs a working OS, a working web server and working 3rd-party libraries to glue together. When any of these stop working PHP needs ways to identify the problems and fix them quickly. When you make the underlying framework more complex by not having completely separate execution threads, completely separate memory segments and a strong sandbox for each request to play in, further weaknesses are introduced into PHP's system.

  • If you want to use a threaded MPM, look at a FastCGI configuration where PHP is running in its own memory space.














本文转自wks9751CTO博客,原文链接: http://blog.51cto.com/wks97/1600108,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10062 0
Workflow_工作流发送Document和Form链接的实现(案例)
2014-06-01 Created By BaoXinjian 一、摘要 Oracle Workflow可以发送Form、Document、URL链接,经常遇到,下文介绍Form和Document如何发送 Attribue Type Form Document URL   二、案例 - 发送Document Link链接 需求:发送Document文件 Step1.
754 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13875 0
一篇文章教会你理解Scrapy网络爬虫框架的工作原理和数据采集过程
今天小编给大家详细的讲解一下Scrapy爬虫框架,希望对大家的学习有帮助。 1、Scrapy爬虫框架 Scrapy是一个使用Python编程语言编写的爬虫框架,任何人都可以根据自己的需求进行修改,并且使用起来非常的方便。
1243 0
+关注
10146
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载