Locust - 如何延迟 RPS 数据的收集,直到所有线程都启动
Posted
技术标签:
【中文标题】Locust - 如何延迟 RPS 数据的收集,直到所有线程都启动【英文标题】:Locust - how to delay collection of RPS data until all threads have started 【发布时间】:2021-08-01 07:47:42 【问题描述】:场景
locust
使用渐变生成率测试,图表看起来像 45 度角。
我想知道所有线程都在运行时系统的 RPS。
locust
的开箱即用 RPS 值将包括运行开始时线程较少时的 RPS 值。
-
如何自定义我的
locust
脚本以从所有线程都运行时开始计算 RPS?
这是一种合理的负载测试做法吗?
另一种选择是尽可能“模拟现实”(实际上,系统启动时会加速)。要获得更具代表性的 RPS 值,请运行更长时间的测试。
【问题讨论】:
【参考方案1】:在添加新负载时,您需要注意系统可以处理的内容有很多原因。接受连接可能会出现性能问题,例如,如果您的 SSL/TLS 设置或库不正确或较旧。在某些情况下,出现新负载可能会影响已经连接到并使用您的系统的用户。当接受新连接时,您甚至可能会发生额外的服务器逻辑。简而言之,您应该使用上面的 3)。
但是,有足够多的人喜欢忽略或掩饰在加速过程中的情况,Locust 确实有一个 configuration option --reset-stats
,一旦所有产卵完成,它会自动重置所有收集的统计数据,因此看起来好像负载测试开始时所有用户都立即连接。这应该可以满足您的要求。
【讨论】:
优秀的答案。我想补充的一件事是,在加速期间响应时间/吞吐量的变化通常是为什么系统没有执行的关键指标:如果响应时间一开始很短,但在加速期间增加加速它表示系统过载/饱和。如果响应时间稳定(并且 RPS 在加速期间线性增加),系统仍有剩余容量(可能仍然很慢,但尚未饱和)以上是关于Locust - 如何延迟 RPS 数据的收集,直到所有线程都启动的主要内容,如果未能解决你的问题,请参考以下文章