关于 256M RAM 服务器上的 MPM Prefork MaxClient 参数

关于 256M RAM 服务器上的 MPM Prefork MaxClient 参数

我对 VPS 服务器上的 Apache MPM Prefork 配置有疑问。

一篇slicehost的文章,他们建议如果我的虚拟服务器上有256MB RAM,则将MaxClients设置为40。(http://articles.slicehost.com/2010/5/20/configuring-the-apache-mpm-on-debian

但是由于每个客户端请求使用大约 50MB RAM 内存,因此必然会发生交换,导致我的 VPS 速度变慢。

  PID   RSS COMMAND
10146 45944 /usr/sbin/apache2 -k start
10147 52528 /usr/sbin/apache2 -k start
10150 49680 /usr/sbin/apache2 -k start
10151 48756 /usr/sbin/apache2 -k start

我发现如果我将 MaxClients 设置为 4 (!),就不会进行任何交换,并且 Web 服务器应该会更快(或者我错了?)

所以,我不明白为什么他们建议 40。

谢谢

答案1

您可以拥有的 MaxClients 数量完全取决于您的网站的性质。

如果您主要提供静态内容,那么 Apache 不会使用太多内存,并且可以将 MaxClients 设置为 40(或更多)。

另一方面,如果你确实有一些占用大量内存的东西(比如你运行一个 CMS,比如Drupal或博客WordPress),每个进程的内存需求将大幅增加,因此 MaxClients 值会下降。对于这些大型 PHP 应用程序,单个进程很容易消耗 10 到 ??? 兆字节的 RAM。

答案2

他们可能会这样建议,因为每个请求 50 MB 内存并不常见。

您可能应该检查是否可以删除正在使用的任何模块。还请检查是否可以将任何 mod_(如 mod_php)移至 fcgid。

完成此操作后,您可能只剩下线程安全模块,并且可以安全地切换到 worker MPM,这可能会解决所有性能问题。

相关内容