0

我们有一个网站可能会因为一些重要的曝光(电视)而获得一些重要的流量,我们希望尽最大努力做好准备。我在 AWS 上,并且已将我们的 MySQL 数据库移至其自己的 RDS 实例。

Apache 现在基本上是 Web 服务器上唯一的东西。我分配了一个“大”实例,具有 7.5GB 的 RAM 和 2 个 CPU。

我担心我对 Apache 配置的无知使我无法充分利用盒子,我特别担心 MinSpareServers、MaxSpareServers 和 StartServers 设置。

我们正在提供一个 cakePHP 应用程序。

每个实例在生成后似乎占用 22MB 内存

感谢您提供的任何见解

4

1 回答 1

0

首先,您应该检查您的 ELB 配置是否可以处理流量峰值(如果您使用的是 ELB)。这里的重点是 ELB 只能每五分钟(大约)扩展 50%,所以它不能很好地处理流量峰值。附加信息在这里

如果您不使用 ELB,我建议在您的服务器前面添加一个负载均衡器,以便额外考虑(我专门使用 HAProxy,因为我们的流量往往是尖峰的)。这样,您可以在出现问题时快速添加新服务器。

回到你的 Apache 调优问题,你应该确保你正在使用你机器上所有可用的 RAM。这意味着设置一个简单的负载测试(使用 siege 或 apache ab)并提高 MaxSpareServers 和 MaxClients 设置,直到您的 EC2 实例饱和。另外,请确保您运行的是 MPM Worker 而不是 Prefork,我已经看到了更好的结果。鉴于机器只有两个 CPU,拥有大量并发 apache 进程可能无济于事,因为 CPU 可能会饱和。

性能会根据您实际运行的应用程序而有很大差异,并且您可能会遇到其他瓶颈,例如 RDS 实例,但是正确缓存的解决方案应该在您提到的服务器上产生 10-40k RPM。

扩展通常需要测试和优化,但我希望这会有所帮助。

于 2013-11-01T11:31:28.450 回答