我所处的情况是,一个网站将拥有大量的网络用户和一些后端网站管理员。
网站管理员会上传图片(+其他高内存任务),这会将 httpd 子进程的内存分配增加到 100-150mb。为了停止交换,我目前将 httpd.conf 中的 MaxClients 设置为 20。但是这会降低最大同时请求数。网站上线后这会成为问题吗?
最佳配置是什么?
信息:Drupal 6、PHP 5、Apache 2.2(目前为 Prefork)
我正在考虑 Worker MPM、两个 apache 实例或低 MaxRequestsPerChild。
答案1
事实上,没有人知道最适合您自己的设置的配置是什么,但您可以使用一些指南来找到它。《构建可扩展的网站》一书非常详细地解决了这个问题。
首先,您需要说明哪种服务水平是可以接受的。例如,容纳 10 个并发用户,90% 页面加载时间少于一秒,正常运行时间为 99.99%。
然后进行基准测试,以确定您目前可以容纳多少用户。如果您无法达到目标(如上所述),则需要优化(需要花费您的时间)或更多硬件(需要您(老板)的钱)。此外,要知道,优化带来的收益会随着您花费更多时间而减少。调整应用程序设置时,瞄准容易实现的目标。然后继续。在某个时候,您需要更多/更快的硬件。
对于 Drupal 来说,迁移到 Pressflow、Varnish、Memcache 和 APC 是您的重大优化。我会首先这样做。
另外,请查看您的架构并确保它能够扩展。如果需要,您应该能够向集群添加更多 Web 服务器。
希望这可以帮助。