Apache三种MPM分析: Prefork、Worker和Event

httpd.conf

LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
[root@martin httpd]# vim extra/httpd-mpm.conf


prefork: 一个进程一个请求(select(): 1024)

<IfModule mpm_worker_module>
    StartServers             3
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   0
</IfModule>


StartServers: 默认启动的工作进程数;
MinSpareServers: 最少空闲进程数;
MaxSpareServers: 最大空闲进程数;
#ServerLimit: 最大活动进程数;
MaxRequestWorkers: 并发请求的最大数;
MaxConnectionsPerChild: 每个子进程在生命周期内所能够服务的最多请求个数,然后被杀死  0表示不限定

Apache三种MPM分析: Prefork、Worker和Event_第1张图片

worker: 一个进程多个线程,一个线程一个请求

<IfModule mpm_worker_module>
    StartServers             3
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   0
</IfModule>
StartServers:启动的子进程的个数
MaxRequestWorkers: 并发请求的最大数;    StartServers*ThreadsPerChild
MinSpareThreads:最小空闲线程数;
MaxSpareThreads:最大空闲线程数;
ThreadsPerChild:每个子进程可生成的线程数;
MaxConnectionsPerChild:每个子进程在生命周期内所能够服务的最多请求个数,0表示不限定;
       

 event: 一个线程响应多个请求

<IfModule mpm_event_module>
    StartServers             3
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   0
</IfModule>
StartServers   : 数量的服务器进程的开始
MinSpareThreads : 理解为最小数量的工作线程
MaxSpareThreads :理解为 最大数量的工作线程
ThreadsPerChild   : 理解为每个服务进程包含的固定数量的工作线程
MaxRequestWorkers : 单个进程最大并发
MaxConnectionsPerChild: 最大连接数的一个服务器进程服务

Apache三种MPM分析: Prefork、Worker和Event_第2张图片

你可能感兴趣的:(apache,event,worker,mpm,prefork)