每分钟 350,000 个请求的负载测试

Joh*_*ith 4 load-testing high-load

我需要一种方法来重现我们网站不久前经历的突然流量激增,以便有机会保持我们的堆栈正常工作。

我们的负载均衡器在某个时刻报告说每分钟执行大约 35 万个请求,破坏了一切,从操作系统到关闭后端。我尝试研究执行这种突发测试的服务,但似乎在调整测试设置以匹配所需条件时,它只会花费太多。

如何以符合这些条件的方式对我的堆栈进行负载测试?

Wil*_*ill 8

所以,这是每秒 5,833 个请求,这是很多,但它是可行的。我建议使用名为siege. 尝试不同的并发选项,直到Transactions per second:siege的输出中达到峰值速率。您还可以使用abApache 项目中的(ApacheBench),但siege功能要强大得多。

然后,添加更多机器,直到总数达到 6,000 台。您可能可以经济高效地使用 Amazon EC2,甚至只需在不同位置的不同 Internet 上行链路上设置几台机器即可ssh访问它们。您可以在所有机器上同时使用cronat启动siege(首先确保时钟同步)。

至于使用外部公司进行测试,是的,这可能会非常昂贵,而且我认为我不能指向任何特定的公司,但我过去曾与一些公司合作过. 这绝对是您可以用几个小时的 EC2 时间自己完成的事情。

编辑

正如@HBruijn 出色地指出的那样,有一个很棒的开源工具,叫做Bees with Machine Guns,它可以通过 EC2 自动创建、拆卸和协调负载生成。这听起来像是适合您情况的正确方法。

  • 一个经济和自动化的例子是[用机枪的蜜蜂](https://github.com/newsapps/beeswithmachineguns) (3认同)