Add a maximum concurrency option to rps runner

The rps benchmark runner has no throttle for how many total concurrent
test threads it will run. For some tests, like nova boot tests, cloud
capacity for instances could be reached before a suitable amount of
tests. For that reason this introduces a throttle of maximum concurrent
scenario threads that are allowed to be live.

Much like how tasks are divvied up across workers, concurrency slots are
divvied up across workers as well. Each worker gets a max and will wait
for a thread to finish before adding a new one once the max has been
reached.

If no max concurrency is provided, the concurrency is pinned to the
times to execute.

Co-Authored-By: Jesse Keating <jlk@bluebox.net>
Co-Authored-By: Marian Krcmarik <mkrcmari@redhat.com>

Implements: blueprint rps-benchmark-with-max-concurrency

Change-Id: I488322eb9b50afe58801d28be8ad37f0cc5aeb07
This commit is contained in:
Jesse Keating 2014-12-08 13:40:20 -08:00 committed by Marian Krcmarik
parent c2a6ed3edd
commit dd758c371c

View File

@ -252,6 +252,18 @@
failure_rate:
max: 0
-
args:
sleep: 0.001
runner:
type: "rps"
times: 200
rps: 20
max_concurrency: 10
sla:
failure_rate:
max: 0
-
args:
sleep: 0.1