#!/bin/bash # Copyright 2010-2013 Frank Liepold / 1&1 Internet AG # # Email: frank.liepold@1und1.de # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ## defaults for module perftest ## time for which the amount of data to sync must be constant ## to declare the sync process as inactive perftest_time_constant_sync=20 ## maxtime to wait for sync to stop perftest_maxtime_sync=300 ## flag whether the data device should be written simultaneously perftest_parallel_writer=0 ## amount of data in GB to be written to the data device perftest_data_in_gb_to_write=10 ## size of logfile (in GiB and rounded) after perftest_data_in_gb_to_write are written perftest_logfile_size_in_gb=10 ## time for which the amount of data to fetch must be constant to declare ## the fetch process as having stopped perftest_time_constant_fetch=10 ## maxtime to wait for fetch to stop (after pause-fetch) perftest_maxtime_fetch=300 ## maxtime to wait for apply to stop (after pause-apply) perftest_maxtime_apply=100 ## time for which the amount of data to apply must be constant to declare ## the apply process as having stopped perftest_time_constant_apply=5 ## error tag which will be printed if the runtime diff exceeds the ## required interval perftest_errortag_result_out_of_bounds="PERFORMANCE-FAILURE" ## maxtime to wait for secondary to become disk state = Uptodate and ## repl state = Replaying in *prepare_for* functions perftest_maxtime_state_constant=60 ## array containing the required results (durations or rate (loops / minute)) of performance tests. A result consists of the ## required value and - comma separated - a tolerance given in percent. ## the index consists of host, action, flag whether a parallel writer to the data device is running, type of result, ## number of resources, sub testcase id ## ## for the sync tests the sub testcase id consist of: nunber of patches, patch length, sync mode declare -g -A perftest_required_result_list perftest_required_result_list=(\ ["HOST","ACTION","PARALLEL_WRITER","RESULT_TYPE","NO_RESOURCES","GB_TO_FETCH_RESP_TO_APPLY"]=-1 \ ["istore-test-bap7","apply",0,"time",1,"10"]=63,10 \ ["istore-test-bap7","apply",1,"time",1,"10"]=63,10 \ ["istore-test-bap7","fetch",0,"time",1,"10"]=155,10 \ ["istore-test-bap7","fetch",1,"time",1,"10"]=223,10 \ ["istore-test-bap7","fetch_and_apply",0,"time",1,"5"]=267,10 \ ["istore-test-bap7","fetch_and_apply",1,"time",1,"5"]=336,10 \ ["HOST","ACTION","PARALLEL_WRITER","RESULT_TYPE","NO_RESOURCES","GB_FETCHED_RESP_APPLIED"]=-1 \ ["istore-test-bs7","write_while_apply",0,"loops_per_min",1,"10"]=16,10 \ ["istore-test-bs7","write_while_fetch",0,"loops_per_min",1,"10"]=16,10 \ ["istore-test-bs7","write_while_fetch_and_apply",0,"loops_per_min",1,"5"]=15,10 \ ["HOST","ACTION","PARALLEL_WRITER","RESULT_TYPE","NO_RESOURCES","DURATION_OF_WRITE:DEVICE_SIZE:PART_OF_DEVICE_SIZE_WRITTEN_PER_LOOP"]=-1 \ ["istore-test-bs7","write",0,"loops_per_min",1,"30:2:4"]=24,10 \ ["HOST","ACTION","PARALLEL_WRITER","RESULT_TYPE","NO_RESOURCES","DURATION_OF_WRITE:DEVICE_SIZE:PART_OF_DEVICE_SIZE_WRITTEN_PER_LOOP:DIVISION_OF_DATA_AND_MARS_DEVICES"]=-1 \ ["istore-test-bap7","write",0,"loops_per_min",1,"60:2:8:same_controller"]=28,10 \ ["istore-test-bap7","write",0,"loops_per_min",1,"60:2:8:separated_and_mars_dev_with_bbu_cache"]=22,10 \ ["istore-test-bap7","write",0,"loops_per_min",1,"60:2:8:separated_and_mars_dev_without_bbu_cache"]=10,10 \ ["HOST","ACTION","PARALLEL_WRITER","RESULT_TYPE","NO_RESOURCES","NO_PATCHES:PATCH_LENGTH:SYNC_MODE"]=-1 \ ["istore-test-bap7","sync",0,"time",1,"10:1:rsync"]=42,10 \ ["istore-test-bap7","sync",0,"time",1,"10:50000:rsync"]=43,10 \ ["istore-test-bap7","sync",0,"time",1,"4:500000:rsync"]=45,10 \ ["istore-test-bap7","sync",0,"time",1,"2:1000000:rsync"]=49,10 \ ["istore-test-bap7","sync",0,"time",1,"10:1:fast_sync"]=10,10 \ ["istore-test-bap7","sync",0,"time",1,"10:50000:fast_sync"]=10,10 \ ["istore-test-bap7","sync",0,"time",1,"4:500000:fast_sync"]=13,10 \ ["istore-test-bap7","sync",0,"time",1,"2:1000000:fast_sync"]=18,10 \ ["istore-test-bap7","sync",1,"time",1,"10:1:fast_sync"]=33,10 \ ["istore-test-bs7","write_while_sync",0,"loops_per_min",1,"10:1:fast_sync"]=11,10 \ ["istore-test-bap7","sync",1,"time",1,"10:50000:fast_sync"]=83,10 \ ["istore-test-bs7","write_while_sync",0,"loops_per_min",1,"10:50000:fast_sync"]=12,10 \ ["istore-test-bap7","sync",1,"time",1,"4:500000:fast_sync"]=60,10 \ ["istore-test-bs7","write_while_sync",0,"loops_per_min",1,"4:500000:fast_sync"]=10,10 \ ["istore-test-bap7","sync",1,"time",1,"2:1000000:fast_sync"]=56,10 \ ["istore-test-bs7","write_while_sync",0,"loops_per_min",1,"2:1000000:fast_sync"]=10,10 \ ["istore-test-bap7","sync",0,"time",1,"10:1:no_fast_sync"]=26,10 \ ["istore-test-bap7","sync",0,"time",1,"10:50000:no_fast_sync"]=40,10 \ ["istore-test-bap7","sync",0,"time",1,"4:500000:no_fast_sync"]=82,10 \ ["istore-test-bap7","sync",0,"time",1,"2:1000000:no_fast_sync"]=31,10 \ ["istore-test-bap7","sync",1,"time",1,"10:1:no_fast_sync"]=31,10 \ ["istore-test-bs7","write_while_sync",0,"loops_per_min",1,"10:1:no_fast_sync"]=10,10 \ ["istore-test-bap7","sync",1,"time",1,"10:50000:no_fast_sync"]=69,10 \ ["istore-test-bs7","write_while_sync",0,"loops_per_min",1,"10:50000:no_fast_sync"]=10,10 \ ["istore-test-bap7","sync",1,"time",1,"4:500000:no_fast_sync"]=71,10 \ ["istore-test-bs7","write_while_sync",0,"loops_per_min",1,"4:500000:no_fast_sync"]=10,10 \ ["istore-test-bap7","sync",1,"time",1,"2:1000000:no_fast_sync"]=78,10 \ ["istore-test-bs7","write_while_sync",0,"loops_per_min",1,"2:1000000:no_fast_sync"]=10,10 \ ) ## flag to check net throughput while waiting for fetch or sync to stop perftest_check_net_throughput=1 ## flag whether the performance influence of splitting /mars device and data ## device on different raid controllers is to be measured perftest_division_mars_device_data_device=0 ## after this number of checks whether fetch or sync have stopped, the net throughput is checked perftest_check_net_throughput_intervall=2 ## port on which nttcp tests the network connection perftest_nttcp_port=12346 ## command to start nttcp receiver perftest_nttcp_start_cmd="nttcp -p $perftest_nttcp_port -r -i" ## type of result of tests perftest_result_type="time" ## proc file to switch sync modus perftest_sync_mode_proc_file='/proc/sys/mars/do_fast_fullsync'