我正在评估 k6 以满足我的负载测试需求。我已经设置了一个基本的负载测试,我目前正在尝试解释我得到的错误消息和结果值。也许有人可以帮我解释我所看到的:
如果我将 VUS 提高到 300 左右,我开始在控制台中看到错误消息,并且出现 500 多条错误消息。
这些主要包括:
- dial tcp XXX:443: i/o timeout
- read tcp YYY(local ip):35252->XXX(host ip):443: read: connection reset by peer
- level=warning msg="请求失败" error="unexpected EOF"
- 获取https://REQUEST_URL/:超出上下文期限”
我也有几个检查的问题:
- 检查 res.status === 0 和 res.body === null 的错误
- 检查 res.status === 0 的错误,但正文包含正确的内容
怎么可能res.status
是 0 但正文仍然包含正确的值?
我怀疑我已达到负载生产机器的连接限制,这就是我收到错误消息的原因。所以我必须建立一个集群或转移到 Cloud runners!?
k6 生成的统计数据显示长http_req_blocked
值,我将其解释为等待获取连接端口的时间。这似乎表明我的测试运行机器的连接池已达到极限。
http_req_blocked...........: avg=5.66s min=0s med=3.26s max=59.38s p(90)=13.12s p(95)=20.31s
http_req_connecting........: avg=1.85s min=0s med=280.16ms max=24.27s p(90)=4.2s p(95)=9.24s
http_req_duration..........: avg=2.05s min=0s med=496.24ms max=1m0s p(90)=4.7s p(95)=8.39s
http_req_receiving.........: avg=600.94ms min=0s med=82.89µs max=58.8s p(90)=436.95ms p(95)=2.67s
http_req_sending...........: avg=1.42ms min=0s med=35.8µs max=11.76s p(90)=56.22µs p(95)=62.45µs
http_req_tls_handshaking...: avg=3.85s min=0s med=1.78s max=58.49s p(90)=8.93s p(95)=15.81s
http_req_waiting...........: avg=1.45s min=0s med=399.43ms max=1m0s p(90)=3.23s p(95)=5.87s
谁能帮我解释我看到的结果?