欢迎来到云服务器

服务器租用

Apache处事器中worker和prefork模式的事情道理和设置要领

httpd在linux下默认利用prefork, 我们网站的处事器,在编译httpd的时候,就指定了利用worker模式

简朴相识 worker模式与 prefork模式

worker : httpd在启动的时候,会由root历程派生出几个子历程,每个子历程中会有牢靠命量的线程,到时候提供处事的,韩国百兆不限流主机 新加坡服务器,就是这些线程,也就是说一个历程可以或许同时提供多次处事。

prefork : httpd利用历程来提供处事,每个历程在同一时间提供一次处事。

worker 参数设置

由于我较量存眷 worker 模式, 所以就出格存眷了一下 worker 的一些参数设置。

worker的参数主要有:ServerLimit,ThreadLimit,StartServers,MinSpareThreads,
MaxSpareThreads,ThreadsPerChild,MaxClients,MaxRequestsPerChild。

ServerLimit 是配置httpd root历程可以或许发生的最大历程数限制

ThreadLimit 是配置每个httpd子历程可以或许发生的最大处事线程限制

StarServers 是httpd刚启动时,root历程建设的子历程数

MinSpareThreads 顾名思义,就是最少的空闲线程数

MaxSpareThreads 就是最多的空闲线程数

ThreadsPerChild 每个子历程发生的线程数

MaxClients httpd同时处理惩罚的最大请求数

MaxRequestsPerChild 每个子历程提供的请求处事数,假如到达该值,则该子历程竣事,由root历程按照需要再次派生新的子历程

个中几个参数之间的接洽照旧很重要的:

ServerLimit 限制了 MaxClients 和 ThreadsPerChild。 因为 MaxClients / ThreadsPerChild = 子历程数, 而子历程数目是受限于 ServerLimit

MaxSpareThreads 需要 大于便是 MinSpareThreads + ThreadsPerChild 。 按照我的领略,这也是公道的,因为子历程发生时,线程的数目已经是牢靠的了,那就需要 [ MinSpareThreads, MaxSpareThreads ] 中有一个线程数对ThreadsPerChild取余可以或许为0。

下面看看 worker模式下这些参数的默认设置值 :
<IfModule worker.c>
     ServerLimit      16
     ThreadLimit     64
     StartServers     3
     MinSpareThreads  75
     MaxSpareThreads  250
     MaxClients       400  # 16 * 25
     ThreadsPerChild  25
     MaxRequestsPerChild   10000
</IfModule>

腾讯云代理

Copyright © 2003-2021 MFISP.COM. 国外vps服务器租用 梦飞云服务器租用 版权所有 粤ICP备11019662号