From 3e93d4a1cd67579d46a8ebd942e7a4ce574eb482 Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Sat, 21 Jun 2014 17:03:00 +0200 Subject: [PATCH] osd: tests for osd bench Check that the safeguards against timeouts work as expected and that the default hardcoded values are valid. Signed-off-by: Loic Dachary --- src/test/Makefile.am | 1 + src/test/osd/osd-bench.sh | 80 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100755 src/test/osd/osd-bench.sh diff --git a/src/test/Makefile.am b/src/test/Makefile.am index 3669c52c2d0e..0a77b89b9ef3 100644 --- a/src/test/Makefile.am +++ b/src/test/Makefile.am @@ -239,6 +239,7 @@ check_SCRIPTS += \ test/mon/osd-erasure-code-profile.sh \ test/mon/mkfs.sh \ test/osd/osd-config.sh \ + test/osd/osd-bench.sh \ test/ceph-disk.sh \ test/mon/mon-handle-forward.sh \ test/vstart_wrapped_tests.sh diff --git a/src/test/osd/osd-bench.sh b/src/test/osd/osd-bench.sh new file mode 100755 index 000000000000..6feb8418e9e9 --- /dev/null +++ b/src/test/osd/osd-bench.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# +# Copyright (C) 2014 Cloudwatt +# +# Author: Loic Dachary +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Library Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Library Public License for more details. +# + +source test/mon/mon-test-helpers.sh +source test/osd/osd-test-helpers.sh + +function run() { + local dir=$1 + + export CEPH_ARGS + CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " + CEPH_ARGS+="--mon-host=127.0.0.1 " + + local id=a + call_TEST_functions $dir $id --public-addr 127.0.0.1 || return 1 +} + +function TEST_bench() { + local dir=$1 + + run_mon $dir a --public-addr 127.0.0.1 \ + || return 1 + run_osd $dir 0 || return 1 + + local osd_bench_small_size_max_iops=$(CEPH_ARGS='' ./ceph-conf \ + --show-config-value osd_bench_small_size_max_iops) + local osd_bench_large_size_max_throughput=$(CEPH_ARGS='' ./ceph-conf \ + --show-config-value osd_bench_large_size_max_throughput) + local osd_bench_max_block_size=$(CEPH_ARGS='' ./ceph-conf \ + --show-config-value osd_bench_max_block_size) + local osd_bench_duration=$(CEPH_ARGS='' ./ceph-conf \ + --show-config-value osd_bench_duration) + + # + # block size too high + # + ! ./ceph tell osd.0 bench 1024 $((osd_bench_max_block_size + 1)) 2> $dir/out || return 1 + grep osd_bench_max_block_size $dir/out || return 1 + + # + # count too high for small (< 1MB) block sizes + # + local bsize=1024 + local max_count=$(($bsize * $osd_bench_duration * $osd_bench_small_size_max_iops)) + ! ./ceph tell osd.0 bench $(($max_count + 1)) $bsize 2> $dir/out || return 1 + grep osd_bench_small_size_max_iops $dir/out || return 1 + + # + # count too high for large (>= 1MB) block sizes + # + local bsize=$((1024 * 1024 + 1)) + local max_count=$(($osd_bench_large_size_max_throughput * $osd_bench_duration)) + ! ./ceph tell osd.0 bench $(($max_count + 1)) $bsize 2> $dir/out || return 1 + grep osd_bench_large_size_max_throughput $dir/out || return 1 + + # + # default values should work + # + ./ceph tell osd.0 bench || return 1 +} + +main osd-bench + +# Local Variables: +# compile-command: "cd ../.. ; make -j4 && test/osd/osd-bench.sh" +# End: -- 2.47.3