38 lines
1.0 KiB
Bash
38 lines
1.0 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
testdir=$(readlink -f $(dirname $0))
|
||
|
ISCSI_PORT=3260
|
||
|
FIO_PATH=$1
|
||
|
IP_T=$2
|
||
|
|
||
|
set -xe
|
||
|
trap "exit 1" ERR SIGTERM SIGABRT
|
||
|
|
||
|
if [ ! -x $FIO_PATH/fio ]; then
|
||
|
error "Invalid path of fio binary"
|
||
|
fi
|
||
|
|
||
|
function run_spdk_iscsi_fio(){
|
||
|
$FIO_PATH/fio $testdir/perf.job "$@" --output-format=json
|
||
|
}
|
||
|
|
||
|
mkdir -p $testdir/perf_output
|
||
|
iscsi_fio_results="$testdir/perf_output/iscsi_fio.json"
|
||
|
trap "iscsiadm -m node --logout; iscsiadm -m node -o delete; exit 1" ERR SIGTERM SIGABRT
|
||
|
iscsiadm -m discovery -t sendtargets -p $IP_T:$ISCSI_PORT
|
||
|
iscsiadm -m node --login -p $IP_T:$ISCSI_PORT
|
||
|
sleep 1
|
||
|
|
||
|
disks=($(iscsiadm -m session -P 3 | grep "Attached scsi disk" | awk '{print $4}'))
|
||
|
for (( i=0; i < ${#disks[@]}; i++ ))
|
||
|
do
|
||
|
filename+=$(printf /dev/%s: "${disks[i]}")
|
||
|
echo noop > /sys/block/${disks[i]}/queue/scheduler
|
||
|
echo "2" > /sys/block/${disks[i]}/queue/nomerges
|
||
|
echo "1024" > /sys/block/${disks[i]}/queue/nr_requests
|
||
|
done
|
||
|
|
||
|
run_spdk_iscsi_fio --filename=$filename "--output=$iscsi_fio_results"
|
||
|
|
||
|
iscsiadm -m node --logout || true
|
||
|
iscsiadm -m node -o delete || true
|