kee*_*ran 5 load-testing performance-testing
我想知道如何计算负载测试的用户数,思考时间,起搏时间和迭代次数.
要求是:
注意:
如何计算给出的用户数量,以便每小时可以实现10000次交易以及我需要指定多少思考时间和起搏时间以及迭代次数?
Rag*_*nar 10
如果您的唯一目标是在特定时间段内模拟一定数量的事务,则可以在测试中使用极少数虚拟用户来完成此操作.
如果7个事务的平均事务时间是16秒,则意味着您可以使用单个虚拟用户每秒执行7/16个事务.
要在一小时内获得10,000个事务,您必须使用多个并发虚拟用户.
VU = Number of virtual users
time = test time in seconds
TPS = transactions per second
VU * time * TPS = total_transactions
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我们知道total_transactions而不是VU,所以我们将其重写为:
total_transactions / (time * TPS) = VU
Run Code Online (Sandbox Code Playgroud)
使用我们拥有的数字,我们得到:
10000 / (3600 * 7/16) = 6.3
Run Code Online (Sandbox Code Playgroud)
即你需要超过6个VU才能在一小时内完成10k交易.也许去10个VU并根据需要插入一些睡眠时间来达到确切的10,000个交易.
你会得到多少睡眠时间和多少次迭代?
10个用户每16秒执行7次交易一小时将执行总共10*7/16*3600 = 15,750次交易.我们需要减慢用户的速度.我们需要确保他们不会每秒完成7/16次完整交易.我们可以再次使用该公式:
VU * time * TPS = total_transactions
TPS = total_transactions / (VU *time)
TPS = 10000 / (10 * 3600) => TPS = 0.2777...
Run Code Online (Sandbox Code Playgroud)
我们需要确保VU仅执行0.28 TPS,而不是7/16(0.44)TPS.
TPS = transactions / time
Run Code Online (Sandbox Code Playgroud)
您的脚本在16秒内完成7次交易,获得7/16(0.44)TPS.
要了解脚本需要花费多少时间,我们将其更改为:
time = transactions / TPS
time = 7 / 0.277778 => time = 25.2 seconds
Run Code Online (Sandbox Code Playgroud)
目前,您的脚本需要16秒,但我们需要它需要25秒,因此您需要添加9秒的睡眠时间.
所以:
10个VU,在一个小时内在25秒内执行7次交易,将产生10,000笔交易:
10 * 7/25 * 3600 = 10080
Run Code Online (Sandbox Code Playgroud)
每个VU执行的脚本迭代次数将是:
3600 / 25 = 144 iterations
Run Code Online (Sandbox Code Playgroud)
总结一下:
Number of VUs: 10
Total sleep time during one iteration: 9
Iterations/VU: 144
Run Code Online (Sandbox Code Playgroud)
请注意,这一切都假设事务时间是恒定的,并且不会因生成流量而增加.此设置将在目标系统上每秒生成近3个事务,如果您之前未在该频率上进行过测试,则不知道这是否会降低目标系统的速度.
| 归档时间: |
|
| 查看次数: |
28018 次 |
| 最近记录: |