【问题标题】:introduce delay in vegeta requests延迟 vegeta 请求
【发布时间】:2018-10-29 05:31:12
【问题描述】:

我想在使用 Vegeta 的 POST 请求之间引入延迟。我认为减少“-rate”数字不是正确的方法,因为它是我想要的请求数量。有没有办法在请求之间包含延迟/睡眠?

【问题讨论】:

    标签: post request delay sleep vegeta


    【解决方案1】:

    这是一个很好的问题;我一直在寻找相同的,但没有看到任何这样的选项(还)——我考虑过的(但现在无法测试):

    • 创建一个脚本genload.sh,以您想要的定时方式(线条以您想要的节奏出现)以 json 格式(由 vegeta 定义)将待办事项打印到标准输出。它甚至可能只是一个 shell 行:

      while true; do echo '{method: "GET", url: "http://goku", body: "Punch!" | @base64, header: {"Content-Type": ["text/plain"]}}'; sleep 0.05 | done

      (当然,这只会执行 20 个请求/秒,因此您需要为您的用例提供更高级的逻辑)

    • 执行请求生成器,作为请求执行器流式传输到 vegeta:./genload.sh | vegeta -lazy -target /dev/stdin -format json (.. more options ..)

    我不知道

    • 如果这可行——也就是说,如果vegeta 现在将服从您的./genload.sh 脚本规定的节奏。如果你尝试,请告诉我!
    • 这将在多大程度上引入新的性能瓶颈
    • 这是否会让您的生活更轻松,既然您必须维护一个生成负载的脚本。

    如果有效,请告诉我!

    【讨论】:

    • 谢谢,埃里克。我想介绍每个请求之间的延迟。但是在 vegeta 中,没有办法每秒发送一个请求(这就是我想要的),它只会淹没请求,即每秒有很多请求。
    • 现在还不清楚你想要实现什么。您是否尝试过-rate=1/s 参数?那应该发送 1 个请求者秒。如果您想在对一个请求的响应和以下请求之间恰好等待一秒钟(这略有不同;请注意请求-响应延迟),我认为上述方法可能有效。你的目标是什么?
    猜你喜欢
    • 2013-01-08
    • 2021-01-08
    • 2013-11-17
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    相关资源
    最近更新 更多