在 CentOS 5.8/Apache 2.2.3/FastCGI/PHP 5.3.10 虚拟机上,我有原始和克隆的 Magento 安装(用作暂存服务器)。我想尽量减少此临时服务器上 apache 和 php 的内存使用量,并寻求有关如何执行此操作的建议。
例如,我想知道是否可以在单个虚拟服务器上设置像 prefork MPM/worker MPM 这样的限制。
PHP memory_limit 已设置为 128M,因为这是 Magento 运行所需的最低限度。
谢谢
答案1
您的开发/登台环境和实时站点上的内存限制必须相同 - 否则在一个站点上运行的脚本将无法在另一个站点上运行。
因此减少任何内存分配都是不明智的。
如果您对开发商店和生产商店使用同一台服务器 - 通过 VPS 进行分离似乎有点奇怪(如果您试图将内存开销降至最低),因为您会鼓励使用额外的 RAM 来运行每个服务的副本?
将您的登台网站与您的生产商店在同一个 VPS 上运行,以设置了特定限制的另一个用户的身份运行 PHP 实例,这样更有意义/etc/security/limits.conf
- 然后您就可以防止内存使用失控、进程数量和其他任何事情。
如果您确实需要资源和平台分离(即为了符合 PCI DSS 要求,甚至只是最佳实践),那么在您的 staging/dev VPS 中,只需设置最多 1 个 Apache 线程。如果您是唯一的开发人员,则只需要运行一个进程/spawn。
但最终
RAM 特别便宜 – 只需购买更多即可。不要限制您的应用程序,也不要尝试使用一半的功能来运行两倍的功能。