【问题标题】:Meaning of concurrent request when doing performance testing?进行性能测试时并发请求的含义?
【发布时间】:2021-07-05 13:19:49
【问题描述】:

我正在使用 node.js loadtest lib 对我的一个网站进行负载测试。

发送请求时的命令: loadtest -c 10 --rps 10 -t 30 www.example.com

其中 -c 表示并发,--rps 每秒请求数。

文档中对并发的描述如下:

loadtest 会创建一定数量的客户端;这个参数 控制有多少来自它们的请求将同时到达 服务器。 注意:请求不是并行发送的(来自不同的进程),而是同时发送的(一个 第二个请求可能会在第一个请求得到答复之前发送)。

-c 10 --rps 10是不是意味着一共会与服务器建立10个连接,每个连接在一秒钟内发送1个请求?

【问题讨论】:

    标签: node.js networking concurrency performance-testing load-testing


    【解决方案1】:

    调查documentation

    1。 >-c-concurrency > >loadtest 会创建一定数量的客户端;这个参数控制多少。来自他们的请求将同时到达服务器。 > >注意:请求不是并行发送(来自不同进程),而是同时发送(第二个请求可能在第一个请求得到答复之前发送)。

    1. --rps requestsPerSecond

      控制每秒发送的请求数。可以是分数,例如--rps 0.5 每两秒发送一个请求。

      注意:并发不会影响每秒的最终请求数,因为 rps 将由所有客户端共享。例如:

      loadtest -c 10 --rps 10

      将从 10 个不同的客户端向给定的 URL 发送总共 10 个 rps(每个客户端>将每秒发送 1 个请求)。

      注意:如果并发太低,则可能没有足够的客户端来发送所有 rps,如果需要,请使用 -c 进行调整。

      注意:websockets 不支持 --rps。

    所以:

    • -c 代表并发连接(虚拟用户),对于您的-c 10,这意味着 loadtest 将使用 10 个并发线程尽可能快地执行请求
    • -rps 代表“每秒请求数”,如果您不希望这 10 个用户尽可能快地执行请求 - 您可以将每秒请求数限制为给定值。请记住,使用 rps 参数您只能暂停线程以将请求速率限制在所需数量,loadtest 不会自动添加更多线程来达到并维持每秒所需的请求数量,因此确保提供足够数量的客户

    更多信息:What is the Relationship Between Users and Hits Per Second?

    【讨论】:

    • Tnx,您是否知道每个“虚拟用户”是否会因为 -c 10 -rps 10 发送 1 个请求,或者是否有 1 个虚拟用户发送 5 个请求,其余的分散在休息吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 2015-12-27
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多