Apache的3种工作模式

喜欢 · 再关注

再小的努力乘以365都很明显。

Apache 2.X的工作模式

Apache有三种工作模式:分别是preforkworkerevent

prefork

(多进程,每个进程产生子进程)

prefork 是一种非线程、与派生的工作模式,用的是进程去处理请求,所以比较容易消耗内存,但是稳定性好,某个进程出现问题不会影响到其他请求。

worker

(多进程,每个进程生成多个线程)

worker是使用多个子进程、每个子进程有多个线程、由于使用的是线程去处理请求,消耗内存小,适合高流量的请求,但是如果某个进程出现问题,那么这个进程下的线程都会出现问题,即稳定性不是很好。

event

event模式,是为解决keep-alive保持长连接出现的一种工作模式,使用keep-alive长连接的时候,某个线程会一直被占用,即使中间没有请求,需要等到超时才会被释放,所以这个时候就出现了event的工作模式就出现了。

如 何 配 置 模 块

查当前工作模式

用命令(httpd -l)查看

worker.c代表工作在worker 模式下

prefork.c代表工作在prefork 模式下

配置工作模式

在安装的时候需要指定模式:

--with-mpm=worker选项指定工作模式为worker,不指定模式的话,默认为Prefork。

3 种模式解析

配置在.../apache/conf/extra/httpd-mpm.conf文件。

perfork

#StartServers

数量的服务器进程开始。

#MinSpareServers

最小数量的服务器进程,保存备用。

#MaxSpareServers

最大数量的服务器进程,保存备用。

#MaxRequestWorkers

最大数量的服务器进程允许开始。

#MaxConnectionsPerChild

最大连接数的一个服务器进程服务。

worker

#StartServers

初始数量的服务器进程开始。

#MinSpareThreads

最小数量的工作线程,保存备用。

#MaxSpareThreads

最大数量的工作线程,保存备用。

#ThreadsPerChild

固定数量的工作线程在每个服务器进程。

#MaxRequestWorkers

最大数量的工作线程。

#MaxConnectionsPerChild

最大连接数的一个服务器进程服务。

event

#StartServers

初始数量的服务器进程开始。

#MinSpareThreads

最小数量的工作线程,保存备用。

#MaxSpareThreads

最大数量的工作线程,保存备用。

#ThreadsPerChild

固定数量的工作线程在每个服务器进程。

#MaxRequestWorkers

最大数量的工作线程。

#MaxConnectionsPerChild

最大连接数的一个服务器进程服务。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180712G0ANHP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券