首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成HTTPD进程

生成HTTPD进程
EN

Server Fault用户
提问于 2012-11-23 09:10:43
回答 2查看 2.1K关注 0票数 1

有谁能证实Apache是如何培育出新的孩子的?

就像我连接到new服务器(HTTP1.0/ no,保持活动)并发出HTTPD /GET一样,我将生成一个新的HTTPD子节点。如果然后发出另一个/GET,那么将建立一个新的TCP连接。然而,我会使用相同的子进程,我会产生一个新的吗?

谢谢,

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-11-23 12:08:53

如果我连接到一个new服务器(HTTP1.0/ no,保持活动)并发出HTTPD /GET,那么我将生成一个新的HTTPD子节点。

不,要完成TCP握手,您已经有了一个处理请求的进程。因为你提到了‘进程’,这意味着你在谈论的是前叉MPM。在这种情况下,服务器应该已经有一个可用子进程池-其中一个进程获得一个互斥以获取下一个传入连接。

基于线程的服务器以类似的方式工作。

基于事件的服务器是一个完全不同的鱼缸,不产生线程/进程。

如果然后发出另一个HTTP,我将使用相同的子进程

不是的。即使您知道您有一个保持活动的连接,服务器也没有保留任何状态--因此您必须把它当作一个新进程来处理。

票数 2
EN

Server Fault用户

发布于 2012-11-23 10:39:19

没有通用设置,因为这是http服务器性能中最关键的方面。通常,Apache会尽力避免分叉(或者像您所称的那样产生分叉)。看看这个:

http://www.stepwise.hk/blog/check-if-apache-running-prefork-or-worker/

多处理模块(MPM)是管理网络连接和发送请求的Apache模块.Apache2有两种常见的MPM,即mpm_prefork_module和mpm_worker_module。mpm_prefork_module使用每个请求一个进程的传统模型,而mpm_worker_module使用线程模型,它使用多个进程,每个进程都有多个线程,以获得更好的性能和更低的开销。

Apache 2.4的手册说:

构建Apache时,必须选择要使用的MPM。有些平台有特定于平台的MPM: mpm_netware、mpmt_os2和mpm_温特 适用于任何版本.对于一般的Unix类型系统,有几个MPM可供选择。MPM的选择会影响httpd的速度和可伸缩性:

  • 工人 MPM使用多个子进程,每个子进程具有多个线程。每个线程一次处理一个连接。Worker通常是高流量服务器的一个很好的选择,因为它的内存占用空间比预叉MPM要小。
  • 事件 MPM与Worker MPM一样是线程化的,但其目的是通过将一些处理工作转交给支持线程,从而允许同时处理更多的请求,从而释放主线程来处理新的请求。
  • 预叉 MPM使用多个子进程,每个子进程有一个线程。每个进程一次处理一个连接。
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/451483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档