stresstest/loop.sh

95 lines
1.6 KiB
Bash
Raw Normal View History

2023-09-14 09:55:23 +08:00
#!/bin/sh
source ./error_inject.sh
function add_fio()
{
while :
do
fio_cnt=$(ps aux | grep fio -c)
if [ $fio_cnt -gt 50 ]; then
echo "$fio_cnt larger than 50, do not add"
continue
fi
for dev in `lsscsi | grep scsi_debug | awk '{print $6}'`
do
inject=$[RANDOM%3]
if [ $inject -eq 0 ]; then
disk=$(basename $dev)
threads=$[RANDOM%31+1]
echo "add $threads fio for $disk"
fio -filename=/dev/$disk -name=rand_write -rw=randrw -bs=4k -direct=1 -size=1G -numjobs=$threads -runtime=240 -group_reporting 2>&1 > /dev/null &
fi
done
sleep 10
done
}
function add_error()
{
while :
do
for dev in `lsscsi | grep scsi_debug | awk '{print $6}'`
do
inject=$[RANDOM%3]
if [ $inject -eq 0 ]; then
errtype=$[RANDOM%35+1]
echo add error to $(basename $dev)
error_inject$errtype $(basename $dev)
fi
done
sleep 3
done
}
function add_recovery_error()
{
while :
do
for dev in `lsscsi | grep scsi_debug | awk '{print $6}'`
do
inject=$[RANDOM%3]
if [ $inject -eq 0 ]; then
recovtype=$[RANDOM%7+1]
echo add recovery error to $(basename $dev)
recovery_inject$recovtype $(basename $dev)
fi
done
sleep 3
done
}
function clear_error()
{
while :
do
for dev in `lsscsi | grep scsi_debug | awk '{print $6}'`
do
inject=$[RANDOM%3]
if [ $inject -eq 0 ]; then
echo clear error $(basename $dev)
clear_error $(basename $dev)
fi
done
sleep 100
done
}
function set_running()
{
while :
do
for dev in `lsscsi | grep scsi_debug | awk '{print $6}'`
do
echo "running" > /sys/block/$(basename $dev)/device/state
done
sleep 1
done
}