我有一个关于基本术语的问题,但我没有找到详细的解释。输入数据:框架k6 v0.25.1,http-请求。
问题#1:从一个角度看,VU (虚拟用户)的实现是什么?
( 1)客户端;
2)服务器端;
3)客户端与服务器的交互?
关于VU本质的微妙之处,尤其是在k6内部,您应该读些什么?现在,我发现每个VU占据了客户端和服务器端的一个网络端口。
负载概况:
1) rps:1;vus:1;持续时间为N分钟--我在Grafana中看到,请求数量的增加实际上是最小的:+~1 rps。一切都很好;
2) rps:1;vus: 1..1000,stages中的选项stages在N分钟内加速--我看到负载在峰值时增加了,尽管k6文档的选项" rps“是”每秒发出的请求的最大数量,在所有VUs中都是如此“,也就是说,与经验1相类似,在~+100rps选项中,我期望看到负载在~1 rps中--也就是说,k6错误地认为rps限制在所有VUs线程中没有正确地占用rps的数量,或者每个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);
};


发布于 2019-11-11 08:30:25
Virtual User或VU是k6的特定定义和实现。VU是执行脚本、向服务器发出一个或多个HTTP请求的实体。
如果您正在测试web服务器,您可以认为VU与实际用户相同。
如果您正在测试API,VU可以产生比实际VUs更多的每秒对服务器的请求。例如,您可以定义5个VUs,但每一个都可以每秒产生10个请求。这就是为什么当您的VUs增加,您可以很快达到RPS限制。
您可以在这个链接上阅读有关VU定义的更多细节。
https://stackoverflow.com/questions/58787833
复制相似问题