Apache 设置最大并发数

来源:互联网 发布:mysql获取union条数 编辑:程序博客网 时间:2024/05/01 16:05

默认情况下,apache最大并发是150.  我们调整最大并发值,

步骤

① 首先确定当前的apache使用什么MPM

Mpm(多路处理模块),通俗的说: apache处理并发请求的方式

① 如何确定你的apache是使用什么mpm

cmd>httpd.exe –l




说明: 参看 mpm_xxx.c 这里的xxx就是你的mpm方式.

① 修改httpd.conf 文件.

# Server-pool management (MPM specific)

Include conf/extra/httpd-mpm.conf

② 修改httpd-mpm.conf 文件

这里,我们修改成并发1000

<IfModule mpm_winnt_module>

    ThreadsPerChild      1000

    MaxRequestsPerChild    0

</IfModule>

这里,请各位注意,你的机器能否 并发到1000,还有取决于你的机器的cup ,内存,不是说一定就可以并发1000

① 重启apache,测试800并发ok?

② 如何配置网站的并发值,比较好,我给一个参数,如果中型网站,我们建议给的1500-2500.

<IfModule mpm_winnt_module>

    ThreadsPerChild      2000

    MaxRequestsPerChild    1000

</IfModule>


Linux下配置参考值:

因为在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  500

</IfModule>

 

最佳:首先计算的内存占用 一个并发200k*并发数=总内存-必须占用内存.




 

几种 Mpm(多路处理模块),通俗的说: apache处理并发请求的方式.  了解

Perfork原理说明:

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

Worker原理说明:

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

Winnt

0 0
原创粉丝点击