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

dsp*_*099 5 debian tcp nginx stress-testing node.js

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

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

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

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

Fle*_*der 5

你也可以尝试围攻.

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

产生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
Run Code Online (Sandbox Code Playgroud)

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