Apache httpd的最大连接数公道设置

本文详细介绍了如何通过调整Apache HTTP服务器的配置来提高其性能,特别是针对链接数限制和上传速度的问题。通过修改MaxClients、MaxRequestsPerChild等关键参数,可以有效解决网页打开速度缓慢和链接数上限问题,实现更流畅的网站访问体验。

新设备的办事器,带宽 是2M ,apache httpd上传的速度比速度大很多,一向不解原因。 


并且,apache httpd 链接数一旦跨越200以上,网页打开速度就超等慢。希罕愁闷。莫非本身买了办事器还不如虚拟空间的!熬煎中,于是上彀搜刮了一下,成果如下:固然经过批改,如同有一些变更了,然则如同apache httpd链接数一跨越200网页打开速度依然很慢,莫非真的是带宽太低吗?设置了apache 缓存 也按下面的设置了 apache httpd 最大链接数。愁闷中! 

新买了办事器,有一个网站在耳目数增多,接见时很慢。初步认为是办事器带宽太低,但经反复测试,一旦连接上,络续点击同一个页面上不合的链接,都能敏捷打开,这种现象就是申明apache最大连接数已经满了,新的访客只能列队守候有余暇的链接,而若是一旦连接上,在keeyalive 的存活时候内(KeepAliveTimeout,默认5秒)都不消从头打开连接,是以解决的办法就是加大apache的最大连接数。 

1.在哪里设置? 

apache 2.24,应用默认设备,默认最大连接数是150 

起首在httpd.conf中加载httpd-mpm.conf设备(去掉前面的注释): 
# Server-pool management (MPM specific) 
Include conf/extra/httpd-mpm.conf 

可见的MPM设备在Apache2.2/conf/extra/httpd-mpm.conf,但里面按照httpd的工作模式分了很多块,哪一部才是当前httpd的工作模式呢?可经由过程履行 apachectl -l 来查看: 
Compiled in modules: 
core.c 
prefork.c 
http_core.c 
mod_so.c 

所以批改连接数就在Apache2.2/conf/extra/httpd-mpm.conf这个文件了,打开它就找到prefork模式的默认设备是: 
<IfModule mpm_prefork_module> 
StartServers                      5 
MinSpareServers                   5 
MaxSpareServers                  10 
MaxClients                      150 
MaxRequestsPerChild               0 
</IfModule> 

   prefork 把握过程在最初建树“StartServers”个子过程后,为了满足MinSpareServers设置的须要创建一个过程,守候一秒钟,持续创建两个,再守候一秒钟,持续创建四个……如此按指数级增长创建的过程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。 

   这种模式可以不必在恳求到来时再产生新的过程,从而减小了体系开销以增长机能。MaxSpareServers设置了最大的余暇过程数,若是余暇过程数大于这个值,Apache会主动kill掉一些多余过程。这个值不要设得过大,但若是设的值比MinSpareServers小,Apache会主动把其调剂为 MinSpareServers+1。若是站点负载较大,可推敲同时加大MinSpareServers和MaxSpareServers。 

      MaxRequestsPerChild设置的是每个子过程可处理惩罚的恳求数。每个子过程在处理惩罚了“MaxRequestsPerChild”个恳求后将主动烧毁。0意味着无穷,即子过程永不烧毁。 
固然缺省设为0可以使每个子过程处理惩罚更多的恳求,但若是设成非零值也有两点首要的益处: 
1、可防止不测的内存泄漏。 
2、在办事器负载降落的时侯会主动削减子过程数。是以,可按照办事器的负载来调剂这个值。MaxClients是这些指令中最为首要的一个,设定的是 Apache可以同时处理惩罚的恳求,是对Apache机能影响最大的参数。其缺省值150是远远不敷的,若是恳求总数已达到这个值(可经由过程ps -ef|grep httpd|wc -l来确认),那么后面的恳求就要列队,直到某个已处理惩罚恳求完毕。这就是体系资料还剩下很多而HTTP接见却很慢的首要原因。固然理论上这个值越大,可以处理惩罚的恳求就越多,但Apache默认的限制不克不及大于256。ServerLimit指令无须重编译Apache就可以加大MaxClients。 

重视,固然经由过程设置ServerLimit,我们可以把MaxClients加得很大,然则往往会拔苗助长,体系耗光所有内存。以我手头的一台办事器为例:内存2G,每个apache过程消费大约0.5%(可经由过程ps aux来确认)的内存,也就是10M,如许,理论上这台办事器最多跑200个apache过程就会耗光体系所有内存,所以,设置MaxClients要稳重。 

2.要加到几许? 

连接数理论被骗然是支撑越大越好,但要在办事器的才能局限内,这跟办事器的CPU、内存、带宽等都有关系。 

查看当前的连接数可以用: 
ps aux | grep httpd | wc -l 

或: 
pgrep httpd|wc -l 

策画httpd占用内存的均匀数: 
ps aux|grep -v grep|awk ‘/httpd/{sum+=¥6;n++};END{print sum/n}’ 

因为根蒂根基都是静态页面,CPU消费很低,每过程占用内存也不算多,大约200K。 

办事器内存有2G,除去常规启动的办事大约须要500M(保守估计),还剩1.5G可用,那么理论上可以支撑1.5*1024*1024*1024/200000 = 8053.06368 

约8K个过程,支撑2W人同时接见应当是没有题目的(能包管此中8K的人接见很快,其他的可能须要守候1、2秒才干连上,而一旦连上就会很流畅) 

把握最大连接数的MaxClients ,是以可以测验测验设备为: 
<IfModule mpm_prefork_module> 
StartServers                      5 
MinSpareServers                   5 
MaxSpareServers                  10 
ServerLimit                    5500 
MaxClients                     5000 
MaxRequestsPerChild               100 
</IfModule> 

重视,MaxClients默认最大为250,若要跨越这个值就要显式设置ServerLimit,且ServerLimit要放在MaxClients之前,值要不小于MaxClients,不然重启httpd时会有提示。 

重启httpd后,经由过程反复履行pgrep httpd|wc -l 来调查连接数,可以看到连接数在达到MaxClients的设值后不再增长,但此时接见网站也很流畅,那就不消贪婪再设置更高的值了,不然今后若是网站接见突增不警惕就会耗光办事器内存,可按照今后接见压力趋势及内存的占用变更再逐渐调剂,直到找到一个最优的设置值。 

(MaxRequestsPerChild不克不及设置为0,可能会因内存泄漏导致办事器溃散) 

更佳最大值策画的公式: 

apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) * 2 
apache_max_process = apache_max_process_with_good_perfermance * 1.5 

 

文献出处:http://www.cesclub.com/bw/jishuzhongxin/Webjishu/2011/0929/11243.html

内容概要:本文针对离网光伏直流微网中存在的功率供需失衡问题,提出一种基于光伏大功率点跟踪(MPPT)与锂离子储能系统双向削峰填谷协同控制的抑制机制。通过在Simulink中构建完整的光伏储能直流系统仿真模型,涵盖PV光伏阵列、Boost DC-DC变换器、负载、双向DC-DC变换器及锂离子电池系统,实现对系统能量流动的精确建模与动态调控。研究核心在于协调MPPT高效捕捉光伏出力与储能系统快速响应负荷波动的能力,提升系统在光照强度变化和负载突变等动态工况下的运行稳定性与供电质量,有效缓解因光伏出力间歇性与负荷不确定性引发的母线电压波动和能量损耗问题。该方法为离网微网的能量管理提供了理论支持与仿真验证平台。; 适合人群:具备电力电子、新能源系统或自动控制等相关专业知识背景,从事微电网、光伏储能系统研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于离网型直流微网能量管理系统的设计与优化;②支撑高比例可再生能源入场景下的稳定运行控制策略研究;③为MPPT与储能协同控制策略提供仿真验证手段;④适用于科研项目攻关、学术论文复现与实际控制系统开发。; 阅读建议:建议结合Simulink仿真模型与控制算法代码同步学习,重点关注MPPT算法实现、双向DC-DC变换器的控制逻辑以及储能系统充放电策略的设计细节,宜在不同工况下进行仿真实验与参调试,以深入掌握系统的动态响应特性与控制性能。
内容概要:本文提出了一种基于神经网络的据驱动迭代学习控制(ILC)算法,专门针对具有未知动态模型和重复作业特征的非线性单输入单输出(SISO)离散时间系统,应用于无人车路径跟踪控制问题,并配套提供了完整的Matlab代码实现。该方法巧妙融合了神经网络强大的非线性逼近能力与迭代学习控制在重复任务中不断提升精度的优势,能够在缺乏精确系统学模型的情况下,通过多次运行迭代自主优化控制输入序列,显著提高路径跟踪的准确性与鲁棒性。文章不仅展示了核心算法的设计与实现,还列举了涵盖机器学习、深度学习、图像处理、路径规划、电力系统优化等多个前沿科研领域的技术资源,凸显其在智能控制系统仿真与科研创新中的广泛适用性和实用价值。; 适合人群:具备自动控制理论、机器人学或智能系统相关背景,正在从事科研或工程开发工作的研究生、科研人员及技术研发工程师;熟悉Matlab/Simulink编程环境者将更易于上手和深入理解。; 使用场景及目标:①应用于无人车、移动机器人等在重复轨迹任务下的高精度路径跟踪控制,特别适用于系统模型难以精确建模但任务周期性重复的实际场景;②作为据驱动型智能控制算法的教学与实验平台,帮助研究人员深入理解神经网络与ILC的协同机制,推动先进控制策略的自主创新;③为科研工作者提供可复现的算法范例,加速控制理论研究成果的验证与转化,提升科研效率。; 阅读建议:建议结合所提供的Matlab代码逐模块分析算法实现流程,重点剖析神经网络如何与ILC框架集成以实现误差补偿与控制律更新,并尝试在不同路径场景下调试参以观察控制性能变化,同时可参考文中提及的其他技术方向拓展研究思路,实现跨领域融合创新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值