我有一个关于基本术语的问题,我没有找到详细的解释。输入数据:框架 k6 v0.25.1,http-requests。
问题#1:从一个角度来看VU(虚拟用户)的实现是什么:
1) 客户端;
2)服务器端;
3)客户端-服务器的交互?
您应该阅读哪些关于 VU 精髓的精妙之处,尤其是在 k6 中?现在我发现每个 VU 在客户端和服务器端占用一个网络端口。
负载配置文件:
1) rps:1;vus:1; N 分钟的持续时间——我在 Grafana 中看到请求数量的增加非常少:+~1rps。一切都很好;
2) rps:1;vus:1..1000 在 N 分钟内通过选项加速target
-stages
我看到负载峰值增加了 ~+100rps,尽管根据k6 文档的选项“rps”是“每秒发出的最大请求数, 在所有 VU 中总计”选项,即我希望看到负载在 ~1rps 中,而不是 ~+100rps,类似于经验 #1 — 即 rps 限制错误的 k6 错误不会在所有 VU 线程中占用 rps 数量或隐藏每个 VU 存在所需的 VU 的合法行为。
注意:我在场景开始和结束时设置了任意超时以实现负载分布均匀。
问题 #2:当 vus 增加时,非法超过 rps 限制的 rps 令人难以置信的增长可能是什么原因?
例子:
import http from "k6/http";
export let options = {
stages: [
{ duration: "1m", target: 1, rps: 1 },
{ duration: "1m", target: 200, rps: 1 },
{ duration: "1m", target: 500, rps: 1 },
{ duration: "1m", target: 1000, rps: 1 },
{ duration: "1m", target: 500, rps: 1 },
{ duration: "1m", target: 200, rps: 1 },
{ duration: "1m", target: 1, rps: 1 },
]
};
export default function() {
http.get("https://httpbin.test.loadimpact.com/get");
console.log("request made by VU " + __VU);
};