在 RHEL 4 上切换到 apache 2 的 worker mpm

在 RHEL 4 上切换到 apache 2 的 worker mpm

我正在考虑从非线程 prefork mpm 切换到 apache(2.0.52)的混合多进程多线程工作 mpm。

它在运行 RHEL4 的 Intel(R) Xeon(TM) 四核机器上运行。

我听说工作者 mpm 扩展性更好,而我们最近遇到了一些扩展问题。

/usr/sbin/httpd -l 提到 prefork 是 mpm 中的编译版本。在不更改任何配置的情况下切换到 worker mpm 的最佳方法是什么?我想避免从源代码构建。有地方可以找到使用 worker mpm 编译的 apache 的 rpm 吗?

我使用 apache 来 a) 博客 (wordpress) b) 论坛 (phpbb) c) 为 java web 应用程序提供静态内容(使用 mod_jk 将动态请求转发到 tomcat)

在采取行动之前,我需要考虑哪些可能的问题?此外,切换到 worker mpm 后,典型的性能改进是什么?

答案1

由于您在该服务器上运行 PHP,因此我会谨慎使用 Worker MPM。Worker 和 PHP 存在一些已知问题。PHP 安装常见问题解答建议不要这么做。

答案2

使用线程 mpm 的好处主要是内存消耗较低,因此您可以将 MaxClients 设置得更高而不用占用过多的空间。

如果您有臃肿的模块,为每个子进程分配大量内存(即在子进程启动时),而这些内存在线程之间共享,则尤其如此。

然而,这是一个重大的变化,不能掉以轻心,尤其要担心你的 PHP 兼容性。在生产中使用任何配置更改之前,请务必在非生产环境中彻底测试它。

当然,与任何与性能相关的更改一样,您应该对其进行性能测试,看看它是否真的有所改善。这可能并不简单 - 至少这是我发现进行此类更改最困难的事情。

相关内容