ceph/ceph — pull request #1351 by jecluis (2014-03-03 15:36:22+00:00)
Title: osd: OSD: limit the value of 'size' and 'count' on 'osd bench'

Otherwise, a high enough 'count' value will trigger all sorts of timeouts
on the OSD; a low enough 'size' value will have the same effect for a
high enough value of 'count' (even the default value may have ill effects
on the osd's behaviour). Limiting these values do not fix how 'osd bench'
should behave, but avoid someone from inadvertently bork an OSD.

Four options have been added and the user may adjust them if he so
desires to play with the OSD's fate:

- 'osd_bench_small_size_max_iops' [default: 100] defines the amount of
expected IOPS for a small block size (i.e., <1MB).
- 'osd_bench_large_size_max_throughput' [default: 100<<20] defines
the expected throughput in B/s. We assume 100MB/s.
- 'osd_bench_max_block_size' [default: 64 << 20] caps the block size
allowed. We have defined 64 MB.
- 'osd_bench_duration' [default: 30] caps the expected duration. This
values is used when calculating the maximum allowed 'count', and is
not enforced as the maximum duration of the operation. If other IO
is undergoing, or 'osd bench' is somehow slowed down, 'osd bench' may
go over this duration. Adjusting this option does however allow the
user to specify higher 'count' values for (e.g.) a small block size,
as the operation is assumed to perform the operation over a longer
time span.

These options attempt to avoid combinations of dangerous parameters. For
instance, we limit the block size to 64 MB (by default) so that there is
no temptation to specify a large enough block size, along with a very small
'count', such that the end result is similar to specifying a big count with
a sane block size.

Fixes: 7248

Signed-off-by: Joao Eduardo Luis