Apache优化:修改最大并发连接数
2016-04-01 23:50
756 查看
一般情况下,默认apache配置文件不可用于生产环境,需要自己根据实际情况调整参数编译最佳状态。
Apache的核心模块叫做多路模块处理(Multi-Processing Mudule,简称MPM)
各个系统有不同的模块,windows使用mpm_winnt,linux用mpm_prefork或mpm_worker。
当编译时没有指定mpm模块是,windows默认用mpm_winnt,linux默认用mpm_perfork。
1.查看apache使用的何种模块使用命令:
mpm的配置文件在apache安装目录/conf/extra/httpd-mpm.conf。
默认apache没有启用mpm,httpd.conf需添加“Include conf/extra/httpd-mpm.conf”。
mpm_winnt:单进程多线程。
mpm_perfork:多进程。
mpm_worker:多进程多线程。
MPM调优(修改conf/extra/httpd-mpm.conf):
ServerLimit表示apache允许创建的最大进程数,apache编译时内部一个硬限制ServerLimit 20000(mpm_perfork为ServerLimit 200000),如果它设置太高,会有过多的共享内存被分配,如果超过了系统能处理的能力,apache可能无法启动,会系统变得不稳定。
Apache的核心模块叫做多路模块处理(Multi-Processing Mudule,简称MPM)
各个系统有不同的模块,windows使用mpm_winnt,linux用mpm_prefork或mpm_worker。
当编译时没有指定mpm模块是,windows默认用mpm_winnt,linux默认用mpm_perfork。
1.查看apache使用的何种模块使用命令:
$ httpd -l
mpm的配置文件在apache安装目录/conf/extra/httpd-mpm.conf。
默认apache没有启用mpm,httpd.conf需添加“Include conf/extra/httpd-mpm.conf”。
mpm_winnt:单进程多线程。
mpm_perfork:多进程。
mpm_worker:多进程多线程。
MPM调优(修改conf/extra/httpd-mpm.conf):
<IfModule mpm_winnt_module> #每个子进程的最大并发线程数 ThreadPerChild 150 #推荐配置:小型网站=1000 中型网站=1000~2000 大型网站=2000~3000 #每个子进程允许处理的请求数。累计处理请求数超过该值,该子进程会结束(然后根据需要确定是否创建新的子进程。0表示无限制,设置非零防止内存无限泄漏,同时给进程一个寿命,当服务器负载减轻时活动的进程数减少。 MaxRequestPerChild 0 #推荐配置: 小=10000 中或大=20000~100000 </IfModule> <IfModule mpm_perfork_module> #启动apache时创建的子进程数 StartServers 5 # 小=默认 中=20~50 大=50~100 #空闲状态最小子进程数 MinSpareServers 5 # 与StartServers保持一致 #空闲状态最大子进程数 MaxSpareServers 10 # 小=20 中=30~80 大=80~120 #允许同时连接的最大子进程数 MaxClients 150 # 小=500 中=500~1500 大=1500~3000 MaxRequestsPerChild 0 # 小=10000 中或大=10000~500000 (此外还需要设置ServerLimit,最好于MaxClients保持一致) </IfModule> <IfModule mpm_worker_module> StartServers 2 #小=默认 中=3~5 大=5~10 MaxClients 150 #小=500 中=500~1500 大=1500~3000 #空闲状态最小线程数 MinSpareThreads 25 #小=默认 中=50~100 大=100~200 #空闲状态最大线程数 MaxSpareThreads 75 #小=默认 中=80~160 大=200~400 ThreadsPerChild 25 #小=默认 中=50~100 大=100~200 MaxRequestsPerChild 0 #小=10000 中或大=10000~500000 (此外如果MaxChilds/ThreadsPerChild大于16,ServerLimit必须大于它们的值) </IfModule>
ServerLimit表示apache允许创建的最大进程数,apache编译时内部一个硬限制ServerLimit 20000(mpm_perfork为ServerLimit 200000),如果它设置太高,会有过多的共享内存被分配,如果超过了系统能处理的能力,apache可能无法启动,会系统变得不稳定。
相关文章推荐
- 配置apache虚拟主机
- 如何让apache支持.htaccess 解决Internal Server Error The server …错误
- Apache静态编译与动态编译的区别
- 安装Apache服务器
- Apache Shiro去掉URL中的JSESSIONID
- php在apache中运行模式
- apache 虚拟主机配置
- Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier)
- Apache Cordova-Android框架原理研究笔记 II
- java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory
- apache禁止公网IP访问的配置
- apache RewriteRule
- Apache部署django项目
- 在Apache Spark上跑Logistic Regression算法
- Integrating Apache Spark with PyCharm
- xampp集成环境配置自定义端口号虚拟主机,局域网访问apache菜鸟教程
- APMServ中Apache启动失败的原因
- Apache 2.4.x配置允许局域网访问
- 解析LAMP中Apache、php、mysql 默认安装路径
- apache+php+mysql自定义安装