Worker MPM 还是 Prefork?

Worker MPM 还是 Prefork?

我知道这里有两个模块之间的比较主题,但这是不同的。

我联系了 cPanel 支持人员,希望他们能帮我释放 VPS 上的一些内存使用量。他们发现 Apache 2.4“httpd”子进程使用了​​大约 80MB RSS,而在他们的测试服务器上,类似的 Apache 2.4 版本每个 Apache 子进程仅使用了大约 3MB RSS。

经过一段时间的讨论后,他们建议切换到 Apache 2.4 中的 Worker MPM,而不是使用 Prefork。

我搜索了一下他们的说法,发现 Worker MPM 占用的内存较少,但它不是线程安全的。网站上的一些其他主题说 Worker 不适用于 php 应用程序或 mod_php。我不确定这是否正确。

我很困惑,我该怎么办?我的帐户上运行着 php 脚本,我不想中断任何脚本或损坏数据。

大家有什么建议?切换到 Worker MPM 是否可以解决内存不足的问题,而无需中断 php 应用程序?

关于 Apache 的使用,有没有什么解决方案?因为 80MB RSS 与 3MB RSS 相比太高了。

答案1

如果您必须使用 PHP 作为 Apache 模块,那么您应该使用 Prefork,因为正如您所说,PHP 默认编译为非线程安全的,并且 Worker MPM 正在使用线程。

如果可以使用 PHP 作为 FastCgi(PHP-FPM),那么就可以使用 Worker MPM。

顺便说一句,目前部署 PHP 的最佳方式可能是使用 Nginx 和 PHP-FPM。

相关内容