linux – 限制Apache 2内存使用
我正在运行一个古老的Blue& amp;业余爱好网络服务器.白色G3 / 300运行Debian PPC Squeeze 2.6.30.重启后,性能可以暂时保持一段时间,但最终会越来越陷入困境.现在它处于76天的正常运行时间,主要的罪魁祸首似乎是10个apache2进程的内存使用量.
我想我需要降低StartServers,MinSpareServers和/或MaxSpareServers的值,但我不确定要调整哪一个,并且每个部分有三个部分,具体取决于正在使用的mpm模块. 我怎么知道我需要改变以下哪些部分,以及这个盒子有448 MB的物理内存(每个64,128和256支的奇怪的升级历史)有什么合理的值? <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule> <IfModule mpm_worker_module> StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxClients 150 MaxRequestsPerChild 0 </IfModule> <IfModule mpm_event_module> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> 我的apache2.conf中没有任何其他StartServers实例,但这些mpm模块都没有出现在mods-available或mods-enabled中.想法? 谢谢! 解决方法
如今,400MB对于Web服务器并不多 – 您可能需要考虑更换框:)
也就是说,如果你的内存使用量在膨胀,你可能会在某处出现内存泄漏 – 为了快速测试一下httpd进程的大小,然后停止/启动Apache&看看它们是否小得多.如果他们看了几天,看看他们是否成长. 如果是内存泄漏,真正的解决方案是找到并修复内存泄漏,但由于这通常是一个痛苦,你也可以将MaxRequestsPerChild调整为0以外的其他值(无限制).当他们为一定数量的请求提供服务时,这会扼杀Apache工作人员(迫使他们在此过程中放弃他们泄露的内存. 从较大的值(大约数千个)开始,然后逐步减少到数百个.如果每个孩子的请求低于100,那么你的内存泄漏大到足以保证实际修复它,因为不断杀戮和重新产生apache工作人员的性能会很重要. Re:哪个mpm要调整,答案几乎肯定是prefork.你可以运行httpd -V并查找Server MPM:line,它会告诉你. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |