Apache是一个跨平台的web服务器,因为其简单高效、稳定安全的特性,被普遍应用于计算机技术的各个领域。如今,Apache凭借其庞大的用户数,已成为用户数排名产列的web服务器。尽管如此,在实际的生产环境中,咱们仍然不可能直接使用默认配置的Apache来充当服务器。毕竟,为了更充分合理地利用Apache服务器,咱们都应该根据本身的实际须要对Apache的默认配置做出一些必要的调整。而针对Apache的优化配置过程当中,修改Apache的最大并发链接数就显得尤其重要。web
MPM是Multi-Processing Modules,表示Apache中的多路处理模块,目前在Linux上的Apache2.2/2.4中包括三种模式:prefork、worker和event模式。apache或httpd的命令参数“-l”便可列出当前apache中已经编译了的模块,因为MPM只能在编译时指定其中一种,因此列出的静态模块中MPM只有1个,以下所示:apache
查看何种工做模式
httpd -l安全
修改apache的配置文件(rpm安装方式)
<IfModule prefork.c>
StartServers 8
MinSpareServers 5->8
MaxSpareServers 20
ServerLimit 256->500
MaxClients 256->500
MaxRequestsPerChild 4000->10000
</IfModule>服务器
重启apache服务
/etc/init.d/httpd restart并发
具体解释:
StartServers
启动Apache时建立的子进程数。推荐设置:小=默认 中=20~50 大=50~100性能
MinSpareServers
处于空闲状态的最小子进程数。所谓空闲子进程是指没有正在处理请求的子进程。若是当前空闲子进程数少于MinSpareServers,那么Apache将以最大每秒一个的速度产生新的子进程。只有在很是繁忙机器上才须要调整这个参数。此值不宜过大。推荐设置:与StartServers保持一致优化
MaxSpareServers
处于空闲状态的最大子进程数。只有在很是繁忙机器上才须要调整这个参数。此值不宜过大。若是你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改为MinSpareServers+1。推荐设置:小=20 中=30~80 大=80~120线程
MaxClients
容许同时链接的最大请求数量。任何超过MaxClients限制的请求都将进入等待队列,直到达到ListenBacklog指令限制的最大值为止。对于非线程型的MPM(也就是mpm_prefork),MaxClients表示能够用于处理客户端请求的最大子进程数量,默认值是256。要增大这个值,你必须同时增大ServerLimit。对于线程型或者混合型的MPM(也就是mpm_beos或mpm_worker),MaxClients表示能够用于处理客户端请求的最大线程数量。线程型的mpm_beos的默认值是50。对于混合型的MPM默认值是16(ServerLimit)乘以25(ThreadsPerChild)的结果。所以要将MaxClients增长到超过16个进程才能提供的时候,你必须同时增长ServerLimit的值。推荐设置:小=500 中=500~1500 大型=1500~3000rest
ServerLimit
表示Apache容许建立的最大进程数。值得注意的是,Apache在编译时内部有一个硬限制ServerLimit 20000(对于mpm_prefork模块为ServerLimit 200000)。你不能超越这个限制。 使用这个指令时要特别小心。若是将ServerLimit设置成一个高出实际须要许多的值,将会有过多的共享内存被分配。若是将ServerLimit和MaxClients设置成超过系统的处理能力,Apache可能没法启动,或者系统将变得不稳定。 注意:在配置相关参数时,请先保证服务器具有足够的硬件性能(例如:CPU、内存等)。 若是发现自启动后,随着服务器的运行时间增长,服务器的内存占用也随之增长,多是程序中出现内存泄露,请向下调整参数MaxRequestsPerChild的值以下降内存泄露带来的影响,而后尽快找出程序中的问题之所在。推荐设置:与MaxClients保持一致blog
MaxRequestsPerChild推荐设置:小=10000 中或大=10000~500000