调整apache的最大并发数

在默认情况下,apache的最大并发数为150,因此需要调整


首先搞清楚当前apache是什么MPM(多路处理模块)。通俗讲就是apahce处理多并发的方式,常见的有三种


perfork,,worker,winnt模


prefork的工作原理


控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两 个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。这就是预 派生(prefork)的由来.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。


worker的工作原理


由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild 线程数,各个线程独立地处理请求。同样,为了不在请求到来时再生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最 多的空闲线程数;而MaxClients设置了所有子进程中的线程总数.如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进 程。 




利用httpd命令来控制


#httpd.exe -l




当前为winnt.c模式


如何调整最大并发数


①  首先打开apache 的httpd.conf


?

1

2

3

# Server-pool management (MPM specific)

#打开mpm文件配置

Include conf/extra/httpd-mpm.conf

②  打开httpd-mpm.conf


  找到winnt模块


?

1

2

3

4

5

6

<IfModule mpm_winnt_module>

    //最大并发链接数

    ThreadsPerChild      150

    //子进程可以创建的最大进程数

    MaxRequestsPerChild    0

</IfModule>


对于并发数,推荐配置:


  如果我们的网站是中型网站, 建议在1500-2500之间。


            因为在 linux 下,一般说采用的 MPM 是 perfork 模式,我们看看如何配置 .

<IfModule mpm_prefork_module>


    StartServers          5


    MinSpareServers       5


    MaxSpareServers      10


    MaxClients          150   #并发量


    MaxRequestsPerChild   0  #一个进程对应的线程数,对 worker更用.


</IfModule>


给大家一个合理的建议配置. 对大部分网站,中型网站,配置:


<IfModule mpm_prefork_module>

              StartServers         5      #预先启动

              MinSpareServers      5

              MaxSpareServers      10  #最大空闲进程

              ServerLimit          2500   #用于修改apache编译参数

              MaxClients           2000   #最大并发数

              MaxRequestsPerChild  0


</IfModule>


如果你的网站pv值  百万


ServerLimit          2500   #用于修改apache编程参数

MaxClients           2000   #最大并发数


你可能感兴趣的:(调整apache的最大并发数)