summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
1378cc6)
Prior this patch, genfio was considering the disks __NOT__ having the "/dev"
name in it.
That's a serious limitation as
- we can't test regular files
- that doesn't works for complex /dev/ naming like /dev/disk/by-id/...
This patch removes this requirement and let user giving the complete
path.
TEMPLATE=/tmp/template.fio
OUTFILE=
DISKS=
TEMPLATE=/tmp/template.fio
OUTFILE=
DISKS=
RUNTIME=300
ETA=0
MODES="write,randwrite,read,randread"
RUNTIME=300
ETA=0
MODES="write,randwrite,read,randread"
Default is $IODEPTH
-d disk1[,disk2,disk3,..] : Run the tests on the selected disks
Separated each disk with a comma
Default is $IODEPTH
-d disk1[,disk2,disk3,..] : Run the tests on the selected disks
Separated each disk with a comma
- Disk name shall be "sdxx", /dev/ shall NOT be used here
-r seconds : Time in seconds per benchmark
0 means till the end of the device
Default is $RUNTIME seconds
-r seconds : Time in seconds per benchmark
0 means till the end of the device
Default is $RUNTIME seconds
-$PROG -d sdb,sdc,sdd,sde -a -b 4k,128k,1m -r 100 -a -x dellr720-day2/
+$PROG -d /dev/sdb,/dev/sdc,/dev/sdd,/dev/sde -a -b 4k,128k,1m -r 100 -a -x dellr720-day2/
Will generate an fio file that will run
- a sequential bench on /dev/sdb /dev/sdc /dev/sdd /dev/sde for block size = 4k with write,randwrite,read,randread tests
Will generate an fio file that will run
- a sequential bench on /dev/sdb /dev/sdc /dev/sdd /dev/sde for block size = 4k with write,randwrite,read,randread tests
+
+diskname_to_printable() {
+COUNT=0
+for disk in $(echo $@ | tr "," " "); do
+ R=$(basename $disk | sed 's|/|_|g')
+ COUNT=$(($COUNT + 1))
+ if [ $COUNT -eq 1 ]; then
+ P="$R"
+ else
+ P="$P,$R"
+ fi
+done
+echo $P
+}
+
gen_template() {
cat >$TEMPLATE << EOF
[global]
gen_template() {
cat >$TEMPLATE << EOF
[global]
gen_seq_suite() {
TYPE=$1
gen_seq_suite() {
TYPE=$1
+disk=$2
+PRINTABLE_DISK=$(diskname_to_printable $disk)
-[$TYPE-$disk-$BLK_SIZE-seq]
+[$TYPE-$PRINTABLE_DISK-$BLK_SIZE-seq]
-write_bw_log=${PREFIX_FILENAME}$SHORT_HOSTNAME-$BLK_SIZE-$disk-$TYPE-seq.results
-write_iops_log=${PREFIX_FILENAME}$SHORT_HOSTNAME-$BLK_SIZE-$disk-$TYPE-seq.results
+write_bw_log=${PREFIX_FILENAME}$SHORT_HOSTNAME-$BLK_SIZE-$PRINTABLE_DISK-$TYPE-seq.results
+write_iops_log=${PREFIX_FILENAME}$SHORT_HOSTNAME-$BLK_SIZE-$PRINTABLE_DISK-$TYPE-seq.results
EOF
ETA=$(($ETA + $RUNTIME))
}
EOF
ETA=$(($ETA + $RUNTIME))
}
gen_seq_fio() {
for disk in $(echo $DISKS | tr "," " "); do
for mode in $(echo $MODES | tr "," " "); do
gen_seq_fio() {
for disk in $(echo $DISKS | tr "," " "); do
for mode in $(echo $MODES | tr "," " "); do
+ gen_seq_suite "$mode" "$disk"
NEED_WALL=$2
D=0
for disk in $(echo $DISKS | tr "," " "); do
NEED_WALL=$2
D=0
for disk in $(echo $DISKS | tr "," " "); do
+ PRINTABLE_DISK=$(diskname_to_printable $disk)
-[$TYPE-$disk-$BLK_SIZE-para]
+[$TYPE-$PRINTABLE_DISK-$BLK_SIZE-para]
fi
cat >> $OUTFILE << EOF
fi
cat >> $OUTFILE << EOF
-write_bw_log=${PREFIX_FILENAME}$SHORT_HOSTNAME-$BLK_SIZE-$disk-$TYPE-para.results
-write_iops_log=${PREFIX_FILENAME}$SHORT_HOSTNAME-$BLK_SIZE-$disk-$TYPE-para.results
+write_bw_log=${PREFIX_FILENAME}$SHORT_HOSTNAME-$BLK_SIZE-$PRINTABLE_DISK-$TYPE-para.results
+write_iops_log=${PREFIX_FILENAME}$SHORT_HOSTNAME-$BLK_SIZE-$PRINTABLE_DISK-$TYPE-para.results
+ PRINTABLE_DISKS=$(diskname_to_printable "$DISKS")
SHORT_HOSTNAME=$(hostname -s)
case $SEQ in
2)
SHORT_HOSTNAME=$(hostname -s)
case $SEQ in
2)
- OUTFILE=${PREFIX}$SHORT_HOSTNAME-$BLOCK_SIZE-all-$MODES-$DISKS.fio
+ OUTFILE=${PREFIX}$SHORT_HOSTNAME-$BLOCK_SIZE-all-$MODES-$PRINTABLE_DISKS.fio
- OUTFILE=${PREFIX}$SHORT_HOSTNAME-$BLOCK_SIZE-sequential-$MODES-$DISKS.fio
+ OUTFILE=${PREFIX}$SHORT_HOSTNAME-$BLOCK_SIZE-sequential-$MODES-$PRINTABLE_DISKS.fio
- OUTFILE=${PREFIX}$SHORT_HOSTNAME-$BLOCK_SIZE-parallel-$MODES-$DISKS.fio
+ OUTFILE=${PREFIX}$SHORT_HOSTNAME-$BLOCK_SIZE-parallel-$MODES-$PRINTABLE_DISKS.fio