在 Amazon EC2 Large 上运行 Magento 时 Apache 崩溃

在 Amazon EC2 Large 上运行 Magento 时 Apache 崩溃

所以我花了两天时间试图解决这个问题。我们在 Amazon EC2 Large 上托管了一个流量相当高的 Magento 网站,同时使用 Apache w/mpm-prefork、Varnish 和 APC 缓存。问题是 CPU 突然飙升至 100% 并且永不停止,增加了负载并导致页面无法使用。每次启动 Apache 时都会发生这种情况,但通常是几分钟后。

首先是服务器统计数据:

  • 处理器:64位
  • vCPU:2
  • 内存(GiB):7.5

目前,我们唯一的补救措施是将实例升级到 XLarge,其性能“还行”(平均负载为 0.6 - 0.9,但仍可用)。不过,根据其他网站,大型实例应该足以以相对较好的性能托管此实例。

我怀疑我们的 prefork 设置可能导致了这种情况。在 Large 实例上,我们有以下设置:

<IfModule mpm_prefork_module>
  StartServers        10
  MinSpareServers     10
  MaxSpareServers     20
  ServerLimit         50
  MaxClients          50
  MaxRequestsPerChild 4000
</IfModule>

Timeout 120
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 5

当升级到 XLarge 时,我们会交换一些更高的预分叉设置:

<IfModule mpm_prefork_module>
  StartServers        20
  MinSpareServers     20
  MaxSpareServers     40
  ServerLimit         150
  MaxClients          150
  MaxRequestsPerChild 8000
</IfModule>

有人有什么想法可以参考吗?或者有类似设置的人愿意分享吗?

任何帮助都将不胜感激!

相关内容