我只能讲述我自己的经历,到目前为止,我还没有找到一个“明确”的规则来一次性解决所有问题。
DreamHost设置的主要问题是,在将内存消耗保持在最低限度的永恒斗争中,这意味着要尽可能多地删除功能,也就是说,所有这些都会减少带宽(对访问者有好处!)或者CPU(对服务器有好处,但DreamHost控制CPU消耗的力度不如控制RAM)。例如,这意味着摆脱gzip\'ed HTML+CSS(它将消耗CPU+RAM)或几个Minify插件中的任何一个(它也将消耗RAM)。缓存越复杂(我喜欢使用W3 Total cache,或者至少是WP Super cache),消耗的RAM也就越多。
类似地,许多限制MySQL查询数量以提高性能的插件将消耗RAM。因此,找到一个折衷方案,在避免消耗宝贵的RAM的同时,仍能保持站点良好的响应性能,这是一项艰巨的任务!
到目前为止,我在繁忙网站上的最佳结果是取消选中页面速度优化和额外的Web安全性,这显然会消耗大量RAM,而是依赖于与W3 Total Cache和Cloudflare(免费反向代理服务)的结合。Cloudflare将有效地执行与“额外Web安全”模块相同的操作,但由于它在DreamHost之外运行,因此也可以。W3 Total Cache会消耗大量内存,但一旦页面静态存储在本地,Cloudflare将非常高效地缓存它们-因此您在编辑帖子时可能会得到404/500,至少您的访问者不会体验到它们(即使DreamHost提供404或500,Cloudflare也可以提供静态页面)。
还有,感谢this article, 我发现FastCGI比“普通”CGI使用更多的RAM。由于PHP 5.3更擅长管理RAM(更积极的垃圾收集,更少的内存泄漏),我已经尝试切换到PHP 5.3 CGI(不是FastCGI),没有页面速度优化,也没有额外的Web安全性,依靠W3 Total Cache+Cloudflare来加速站点。现在backoffice速度变慢了(CPU消耗更多!)但至少我没有看到404/500(到目前为止!)。
我仍然对这种组合不满意,所以我肯定会继续调整DreamHost的设置,希望进一步减少RAM消耗,同时仍能获得足够的性能。正如@dgw所说,我也使用了很多插件,因为我需要它们的功能。并不是每个用DreamHost托管WP的人都有简单的博客需求;网站越复杂,需要的功能就越多。。。这就是WordPress的美妙之处,你只需要使用你真正需要的插件,如果你对很少的需求感到满意的话,就可以简单地安装核心WP。然而,插件在网站上并不一定“坏”或那么重;但确实有些可能会消耗大量内存。。。