Kuf*_*Kuf 9 linux optimization mpm-prefork apache-2.2
我正在尝试优化我们的 Web 服务器以处理尽可能多的连接。我阅读了很多帖子和 Apache 笔记。我试图了解我应该为 选择哪个值MaxRequestsPerChild
。
起初,我尝试将其设置为 4,000,但服务器在处理许多请求时遇到困难,因此我开始提高它。目前我的设置是:
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 40000
</IfModule>
Run Code Online (Sandbox Code Playgroud)
将 设置MaxRequestsPerChild
为 40,000 后,服务器设法在不使用更多内存/CPU 的情况下处理更多连接。
谁能告诉我这个值是太高了还是可以有这么高的值?
谢谢!
操作系统信息:
[root@web06 ~]# uname -a
Linux web 2.6.18-164.el5PAE #1 SMP Thu Sep 3 04:10:44 EDT 2009 i686 i686 i386 GNU/Linux
[root@web06 ~]# free
total used free shared buffers cached
Mem: 3814660 3502968 311692 0 144368 2970468
-/+ buffers/cache: 388132 3426528
Swap: 5210104 0 5210104
Run Code Online (Sandbox Code Playgroud)
ues*_*esp 11
MaxRequestsPerChild
在运行动态脚本时,它实际上仅用于限制随时间推移的内存泄漏量。如果您只是提供静态内容或非常小/简单的脚本,那么您可以将其设置为 0 或非常高而不会产生太大影响。如果您正在运行更大/复杂的脚本,那么将其设置为 0/high 将导致您的 Apache 进程消耗越来越多的内存。具体多少取决于您的具体应用。
另一方面,将它设置得非常低实际上可能会导致 CPU 使用率略高,因为 Apache 进程会不断重新启动。
我会做一个简单的测试,看看你的进程可以使用多少内存。设置MaxRequestsPerChild
为 0 并重新启动 Apache。测试加载几个页面,看看 Apache 进程使用的初始大小是多少top
。几个小时/几天/几周后再次检查(取决于您的应用程序和页面浏览量),看看它是如何增长的。如果它没有增长太多,那么 0 或非常大的值MaxRequestsPerChild
应该没问题。
如果您为 Apache 进程设置了最大大小(即,您希望它们为 50MB 或更少),那么您可以使用 的各种值进行相同的测试,MaxRequestsPerChild
直到找到使 Apache 小于该值的值。
归档时间: |
|
查看次数: |
22294 次 |
最近记录: |