如何模拟对Web服务器的大量同时请求?

时间:2013-11-03 10:06:18

标签: node.js tcp nginx debian stress-testing

我想知道我的nginx + node.js设置可以走多远以及我可以做出哪些改变来挤出额外的性能我偶然发现a great article详细说明了可以对操作系统进行的一些调整承受更多的要求(我不确定我完全理解)

说我想看看它如何在一段时间内每秒处理60,000个请求。

我尝试过apachebench和beeswithmachineguns。 apachebench似乎局限于大约3500个请求或其他东西。提高并发性只会以某种方式降低平均req / s。 我能够看到(声称)每秒5000个请求到beeswithmachineguns的测试页面,但仍然没有接近我想要的。然而,似乎有点在马车方面。

是否有可靠的方法来模拟大量这样的请求?

1 个答案:

答案 0 :(得分:5)

您也可以尝试siege

你链接的文章看起来不错。

生成60,000 rq / s并同时回答它们将是一个问题,因为你肯定会耗尽资源。最好让其他一些计算机(可能在同一网络上)生成请求,让服务器只处理这些请求。

以下是您所需的60,000 rq / s的围攻配置示例,它将在您的服务器上运行一分钟。

# ~/.siegerc

logfile         = $(HOME)/siege.log
verbose         = true
csv             = true
logging         = true
protocol        = HTTP/1.1
chunked         = true
cache           = false
accept-encoding = gzip
benchmark       = true
concurrent      = 60000
connection      = close
delay           = 1
internet        = false
show-logfile    = true
time            = 1M
zero-data-ok    = false

如果您没有生成负载的基础架构,请将其租用。一项非常棒的服务是Blitz.IO(我与他们无关)。它们具有简单直观的界面,并且(最重要的)它们可以为您生成几乎任何流量。