mirror of https://github.com/schoebel/mars
153 lines
6.8 KiB
Plaintext
153 lines
6.8 KiB
Plaintext
|
#!/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"
|
||
|
|