-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathvars.shinc
201 lines (186 loc) · 7.56 KB
/
vars.shinc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
#--------------------------------------------------------------------
# START GLOBAL VARIABLES
#
#------------------------
# Runtimes
# WARNING: if you change these you need to re-run 'writeXML.sh'
pollinterval="1m" # pollGC.sh interval to check ceph status
# Runtime (in sec)
runtime_sec="180"
# KEY RUNTIME VALUES - used below in FILLvalues_arr and RTvalues_arr
#
rgwUSER="johndoe:swift" # username
#rgwURL="172.16.0.131:5000" # auth_url connection point
rgwURL="localhost:5000" # each client will run its own haproxy
#fillWORKERS=72 # number of workers to use for filling the Cluster
fillWORKERS=45 # number of workers to use for filling the Cluster
#runtestWORKERS=192 # number of workers for running delWrite Workload
runtestWORKERS=45
#runtestWORKERS=240 # number of workers for running HYBRID Workload
#runtestWORKERS=120 # DEBUGnumber of workers for running HYBRID Workload
#
# Object sizes
#objSIZES="h(4|4|34,64|64|33,65536|65536|33)KB"
objSIZES="h(1|1|50,64|64|15,8192|8192|15,65536|65536|15,1048576|1048576|5)KB"
#
# Number of Containers and Objects
numCONT=5
#numOBJ=22000 # for 25% fill
#numOBJ=43397 # for 50% fill
#numOBJ=3273 # for all SATURATION runs
#numOBJ=7233 # for delWRITE in BAGL
numOBJ=210000 # for 30% fill w/192 OSDs EC4+2 DFG histogram
# highest object range for WRITE and DELETE operations
numOBJmax=$(( (numOBJ * 10) )) # multiply by ten for highest Object Count
#########
# DELWRITE workload
# Container ranges for the Write and Delete operation statements
wrCONT="u(1,2)"
delCONT="u(1,2)"
# Object ranges for the Write and Delete operation statements
# TO ENSURE that we are legitimately writing new objects, we are
# using a higher objcnt for these than read/list operations
wrOBJ="u(1,${numOBJmax})"
delOBJ="u(1,${numOBJmax})"
#########
# HYBRID Workload
# Ratios for operation types - MUST add up to 100%
rdRatio=60
wrRatio=16
delRatio=14
listRatio=10
totalRatio=$(( (rdRatio + wrRatio + delRatio + listRatio) ))
if [ $totalRatio -ne 100 ]; then
echo "var.shinc: Operation ratios (rdRatio, wrRatio, ...) must equal 100%"; exit
fi
# Conf portions for the Read and List operation statements
# - start at 3 to reserve the first 2 containers for Write and Delete ops
rdCONF="containers=u(3,${numCONT});objects=u(1,${numOBJ})"
listCONF="${rdCONF}"
#------------------------
# writeXML.sh variables
FILLtemplate="XMLtemplates/TMPL_fillCluster.xml"
FILLxml="fillWorkload.xml"
EMPTYtemplate="XMLtemplates/TMPL_emptyCluster.xml"
EMPTYxml="emptyWorkload.xml"
# fillCluster: pre-existing keys in the template file
# also used to populate EMPTYxml
declare -a FILLkeys_arr=("FILLstorage_type"
"FILLtimeout"
"FILLretry"
"FILLauth_type"
"FILLconfig"
"FILLworkers"
"FILLsizes"
"FILLnumCont"
"FILLnumObj"
)
declare -a FILLvalues_arr=("swift" # storage type
"900000" # timeout (15m)
"3" # retries
"swauth" # auth_type
# config: a bit messy since SED requires "/" be escaped
"username=${rgwUSER};password=EMPTY;auth_url=http:\/\/${rgwURL}\/auth\/1.0"
"${fillWORKERS}" # number of workers
"${objSIZES}" # Object sizes
"${numCONT}" # number of Containers
"${numOBJ}" # number of Objects
)
#------------------------
# RUNTEST settings
#RUNTESTtemplate="XMLtemplates/TMPL_hybrid.xml"
RUNTESTtemplate="XMLtemplates/TMPL_deleteWrite.xml"
RUNTESTxml="ioWorkload.xml"
# runtest: pre-existing keys in the RUNTESTtemplate file
declare -a RTkeys_arr=("RUNTESTstorage_type"
"RUNTESTtimeout"
"RUNTESTretry"
"RUNTESTauth_type"
"RUNTESTconfig"
"RUNTESTworkers"
"RUNTESTruntime"
"RUNTESTsizes"
"RUNTESTnumCont"
"RUNTESTnumObj"
"RUNTESTrdRatio"
"RUNTESTwrRatio"
"RUNTESTdelRatio"
"RUNTESTlistRatio"
"RUNTESTrdConf"
"RUNTESTlistConf"
"RUNTESTwrCont"
"RUNTESTdelCont"
"RUNTESTwrObj"
"RUNTESTdelObj"
)
declare -a RTvalues_arr=("swift" # storage_type
"900000" # timeout (15m)
"3" # retries
"swauth" # auth_type
# config: a bit messy since SED requires "/" be escaped
"username=${rgwUSER};password=EMPTY;auth_url=http:\/\/${rgwURL}\/auth\/1.0"
"${runtestWORKERS}" # workers
"${runtime_sec}" # runtime in seconds
"${objSIZES}" # Object sizes
"${numCONT}" # number of Containers
"${numOBJ}" # number of Objects
"${rdRatio}" # Read ratio
"${wrRatio}" # Write ratio
"${delRatio}" # Delete ratio
"${listRatio}" # List ratio
"${rdCONF}" # config for Read operations
"${listCONF}" # config for List operations
"${wrCONT}" # container range for Write ops
"${delCONT}" # container range for Delete ops
"${wrOBJ}" # object range for Write ops
"${delOBJ}" # object range for Delete ops
)
#------------------------
# resetRGW.sh variables
longPAUSE="400s"
pool_list=(".rgw.root" "default.rgw.control" "default.rgw.gc" \
"default.rgw.buckets.data" "default.rgw.buckets.index" \
"default.rgw.log" "default.rgw.meta")
numREPLICAS=3 # how many replicas
preparePTYPE=ec # Must be rep OR ec
if [ $preparePTYPE == "rep" ]; then
REPLICATION="rep"
k=0
m=0
pg_data=2048
pg_index=64
pg=64
fast_read=0
elif [ $preparePTYPE == "ec" ]; then
REPLICATION="ec"
k=4
m=2
pg_data=4096
pg_index=256
pg=256
fast_read=0
else
echo "Pool type needs to be defined as rep or ec in vars.shinc"; exit
fi
#------------------------
# Host and logfile vars
# Ceph cluster node IP addresses
MONhostname="f18-h03-000-r620"
RGWhostname="f22-h01-000-6048r"
# COSbench vars
#cosPATH="/root/0.4.2.c4"
cosPATH="/root/v0.4.2"
# ceph version (lowercase): Jewel, Luminous, Nautilus, ...
CEPHVER=$(ceph --version | awk '{print $(NF-1) }' | sed 's/[A-Z]/\L&/g')
# Timestamp logfile
ts="$(date +%Y%m%d-%H%M%S)"
# Name of the program being run
PROGNAME=$(basename $0)
# LOGFILE - records steps
RESULTSDIR="./RESULTS"
LOGFILE="${RESULTSDIR}/${PROGNAME}_${ts}.log"
# Logfile date format, customize it to your wishes
# - see man date for help
DATE='date +%Y/%m/%d:%H:%M:%S'
# END GLOBAL VARIABLES
#--------------------------------------------------------------------