Apache是一个跨平台的web服务器,由于其简单高效、稳定安全的特性,被广泛应用于计算机技术的各个领域。现在,Apache凭借其庞大的用户数,已成为用户数排名产列的web服务器。尽管如此,在实际的生产环境中,我们仍然不可能直接使用默认配置的Apache来充当服务器。毕竟,为了更充分合理地利用Apache服务器,我们都应该根据自己的实际需要对Apache的默认配置作出一些必要的调整。而针对Apache的优化配置过程中,修改Apache的最大并发连接数就显得尤为重要。

  MPM是Multi-Processing Modules,表示Apache中的多路处理模块,目前在Linux上的Apache2.2/2.4中包括三种模式:prefork、worker和event模式。apache或httpd的命令参数“-l”即可列出当前apache中已经编译了的模块,由于MPM只能在编译时指定其中一种,所以列出的静态模块中MPM只有1个,如下所示:

查看何种工作模式
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~3000

ServerLimit
表示Apache允许创建的最大进程数。值得注意的是,Apache在编译时内部有一个硬限制ServerLimit 20000(对于mpm_prefork模块为ServerLimit 200000)。你不能超越这个限制。 使用这个指令时要特别当心。如果将ServerLimit设置成一个高出实际需要许多的值,将会有过多的共享内存被分配。如果将ServerLimit和MaxClients设置成超过系统的处理能力,Apache可能无法启动,或者系统将变得不稳定。 注意:在配置相关参数时,请先保证服务器具备足够的硬件性能(例如:CPU、内存等)。 如果发现自启动后,随着服务器的运行时间增加,服务器的内存占用也随之增加,可能是程序中出现内存泄露,请向下调整参数MaxRequestsPerChild的值以降低内存泄露带来的影响,然后尽快找出程序中的问题之所在。推荐设置:与MaxClients保持一致

MaxRequestsPerChild
推荐设置:小=10000 中或大=10000~500000

转载于:https://www.cnblogs.com/hunchun/p/8338309.html

高性能apache服务器配置大并发教程MPM模块配置相关推荐

  1. linux apache 查看mpm 配置方式,Apache MPM模块prefork和worker的区别与配置

    在httpd 2.2版本中是不支持同时编译多个MPM模块的,只能编译要使用的那个,默认是prefork工作模型,另外还有worker和event模块可使用,只不过在2.2中event还在测试阶段,到2 ...

  2. 微服务实战(五):落地微服务架构到直销系统(构建高性能大并发系统)

    在现代系统中,特别是互联网软件,通常会涉及到大量用户的并发访问,我们的系统一定要在架构上支持高性能.大并发的访问.一个高性能的系统通常由很多的方面组成,包括数据库高性能.Web服务器高性能.负载均衡. ...

  3. 设计高性能大并发WEB系统架构注意点

    设计高性能大并发WEB系统架构注意点 第01:大型架构的演进之路 第02(上):分布式缓存 第02(下):分布式缓存 第03:分布式消息队列 第04:分布式数据存储 第05:分布式服务框架 第06:高 ...

  4. 编写大并发高负载通讯程序

    更是涉及面非常广,从硬件到软件.编程语言.数据库.WebServer.防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能比拟的. 大型网站,比如门户网站.在面对大量用户访问.高并 ...

  5. 大并发量socket 通信框架

    学 JAVA 必然要学习网络通信socket,当我们了解了socket的通信原理后,想要写出一个健壮的socket模块还是很不容易的,scoket+线程+IO,我们使用最原始的代码去实现,往往写出的代 ...

  6. [转载]Apache服务器配置全攻略(二)

    Apache服务器配置全攻略(二) MinSpareServers 5 MaxSpareServers 10 在使用子进程处理HTTP请求的Web服务器上,由于要首先生成子进程才能处理客户的请求,因此 ...

  7. [转载]Apache服务器配置全攻略(一)

    Apache服务器配置全攻略(一) Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用三个配置文件httpd.conf,access.conf和srm.c ...

  8. Apache服务器配置技巧

    Apache服务器配置技巧 1.如何设置请求等待时间 在httpd.conf里面设置: TimeOut n 其中n为整数,单位是秒. 设置这个TimeOut适用于三种情况: 2.如何接收一个get请求 ...

  9. 9种高性能高可用高并发的技术架构

    9种高性能高可用高并发的技术架构 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复工作. 所谓网站架构模式即为了解决大型网站面临的 ...

最新文章

  1. CSDN如何编辑数学公式
  2. 华东师范大学2019年高等代数考研试题
  3. websocket采用tomcat方式,IOC类对象无法注入的解决方案
  4. win10 自定义分辨率
  5. ubuntu ufw防火墙
  6. slf4j的jar包冲突:LoggerFactory is not a Logback LoggerContext but Logback is on the classpath
  7. VMware workstation 8.0上安装VMware ESXI5.0
  8. 性能计数器驱动_【Nature Sustainability】机械力驱动的摩擦电高效空气负离子发生器...
  9. 如何让nodejs同步操作
  10. Android从无知到有知——NO.6
  11. UE4中Component和Subobject的区别
  12. Vue 返回记住滚动条位置详解
  13. java azure blobs sas_仅使用SAS令牌连接到Azure存储帐户?
  14. matlab/simulink 永磁直驱海上风电场仿真模型 含集群电流源等效 海上风电场线路结构
  15. linux中括号命令,Linux中的括号用法
  16. ftp服务器文件只读,ftp服务器只读
  17. seo关键词扩展-自动关键词拓展软件免费下载
  18. java中osend_Java中OIO与NIO的简单区别
  19. 2023年北京邮电大学软件工程807考研信息汇总
  20. dellr720服务器性能,戴尔服务器R720

热门文章

  1. js 常用js正则表达式大全
  2. Codechef August Challenge 2018 : Coordinate Compression
  3. 软件工程趣盒软件设计
  4. RMAN备份与恢复(三)--备份相关概念
  5. 017 在SecureCRT中安装rz小工具
  6. POJ 3186Treats for the Cows (区间DP)
  7. 序列输出ZOJ1108 FatMouse's Speed
  8. Grunt 入门指南3:创建Tasks
  9. 高级JAVA - 利用函数式接口实现通用的取并集/交集/差集
  10. 职高有计算机专业前途怎么样,职高有哪些专业前途好有发展前景