我正在尝试构建一组 Web 和数据库服务器,以便我们可以对它们进行负载测试。考虑到我必须处理的约束,我遇到了一些问题:
- 我们无法针对生产环境进行负载测试。嗯,大部分情况下是这样。我们已经研究过一种负责任的方法来做这件事,但最重要的是,这会给我们的客户带来太多的停机风险。所以这意味着我们必须有一套备用的硬件来进行测试。
- 为了防范我们试图防范的攻击,我们确实需要拥有真正相同的硬件,甚至每个机器上运行的驱动程序版本也必须相同。仅仅近似带宽和软件是行不通的。这意味着……
- 硬件将会非常昂贵,昂贵到我们在不进行负载测试时无法承受将其闲置。
- 这导致我们拥有一个可以按需配置的临时设置。缺点是,即使它每个月只运行一周,它仍然可能非常昂贵,而且它还存在繁琐和耗时的缺点。我试图将负载测试作为我们流程中真正一流的产物,而这将是一个障碍。
如果我能挥动我的魔法系统管理员魔杖,我将会得到一个真正克隆的、完全相同的负载均衡架构,从 Web 应用程序防火墙到数据库服务器,一切都是分开的。因此,当我需要进行负载测试时,我可以拨动开关,将架构的一半从负载平衡生产环境转变为负载测试环境。即使这样也不完美,因为它只占了一半的容量,而且我们不会测试正在进行的集群管理,但天哪……你看这有多疯狂。
我得出的结论是“定期进行负载测试只意味着您的托管成本翻倍,或者接受您将无法进行准确的硬件测试”。我这里是否遗漏了什么?
答案1
我想这取决于您要实现的目标以及您的网络配置方式。您可以通过专用 VIP 针对堆栈中的单个服务器进行测试,以了解单个节点的负载能力,这不会给您一个明确的结果,但可以让您了解堆栈容量。