我有一个 Apache Web 应用程序,每分钟处理约 2k 个请求。当前基础架构包括两台服务器,一台充当 Apache + 数据库,另一台仅充当数据库。
我正在尝试评估将 Apache 移动到其自己的服务器和/或甚至几个小实例和负载平衡器所带来的附加值。
我该如何进行这样的评估?我正在使用 New Relic 进行服务器监控,发现大部分 (~70%) 应用服务器时间都花在了 PHP 上。
答案1
您描述的是相当标准的 n+1 架构。它肯定会为您提供许多未来的扩展选项。
我们的许多服务都采用类似的格式
- LB——尽可能使用无状态路由
- 多个 Apache 服务器 - 这些将需要安装 Apache、PHP 等和 MySQL 客户端库。
- 数据库服务器-MySQL
这种格式还受益于提供关闭 Apache 实例进行更新的能力并允许站点保持活动(您必须考虑如何管理数据更改)。
您提到了一个小型实例 - 如果您使用 AWS - 您可以在 Apache 实例前使用其弹性负载均衡器 - 效果非常好。他们还提供 MySQL DB 作为服务。
New relic 有各个方面的插件,因此您可以监控基础设施每个元素的负载。
还有许多选项可用于扩展 MySQL - 我们发现只读从属服务器对我们的应用程序非常有效。