From 98bd9830da7071eed71c95611da7ef8a5f1cf71e Mon Sep 17 00:00:00 2001 From: Susant Palai Date: Mon, 4 May 2015 16:43:02 +0530 Subject: dht/rebalance: Throttle rebalance Throttle value will be "normal" by default. For throttling down, a thread will be put in to sleep. And for throttling up, gf_defrag_process_dir will wake up the sleeping threads. Change-Id: I74d530e3effd6e60e6eec81ccc8ff65789fa9c13 Signed-off-by: Susant Palai Reviewed-on: http://review.gluster.org/10526 Reviewed-by: Raghavendra G Tested-by: Raghavendra G --- tests/basic/distribute/throttle-rebal.t | 42 +++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 tests/basic/distribute/throttle-rebal.t (limited to 'tests/basic') diff --git a/tests/basic/distribute/throttle-rebal.t b/tests/basic/distribute/throttle-rebal.t new file mode 100644 index 00000000000..89495aee71b --- /dev/null +++ b/tests/basic/distribute/throttle-rebal.t @@ -0,0 +1,42 @@ +#!/bin/bash +# Test to check +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +#Check rebal-throttle set option sanity +cleanup; + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 $H0:$B0/brick1 $H0:$B0/brick2 +TEST $CLI volume start $V0 + +function set_throttle { + local level=$1 + $CLI volume set $V0 cluster.rebal-throttle $level 2>&1 |grep -oE 'success|failed' +} + + +THROTTLE_LEVEL="lazy" +EXPECT "success" set_throttle $THROTTLE_LEVEL +EXPECT "$THROTTLE_LEVEL" echo `$CLI volume info | grep rebal-throttle | awk '{print $2}'` + +THROTTLE_LEVEL="normal" +EXPECT "success" set_throttle $THROTTLE_LEVEL +EXPECT "$THROTTLE_LEVEL" echo `$CLI volume info | grep rebal-throttle | awk '{print $2}'` + + +THROTTLE_LEVEL="aggressive" +EXPECT "success" set_throttle $THROTTLE_LEVEL +EXPECT "$THROTTLE_LEVEL" echo `$CLI volume info | grep rebal-throttle | awk '{print $2}'` + +THROTTLE_LEVEL="garbage" +EXPECT "failed" set_throttle $THROTTLE_LEVEL + +#check if throttle-level is still aggressive +EXPECT "aggressive" echo `$CLI volume info | grep rebal-throttle | awk '{print $2}'` + +TEST $CLI volume stop $V0; +TEST $CLI volume delete $V0; + +cleanup; -- cgit