summaryrefslogtreecommitdiffstats
path: root/contrib/test-performance
blob: c8efc07befa6fe4022bfe058469023c722383a02 (plain) (blame)
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
#!/bin/sh -x
selfDir="$(dirname -- "$(realpath -- "$0")")"

data="$(mktemp -d)"
config="$selfDir/../pkg/config"

mount -t tmpfs -- / "$data"
truncate -s 10G -- "$data/test.r1"

sed -Ei "s#^basePath=.*#basePath=$(realpath -- "$data")#" -- "$config/server.conf"
cat -- "$config/server.conf"

"$selfDir/../src/server/dnbd3-server" -nc "$config" & pid="$!"
while ! grep -qF ":$(printf %04X 5003)" /proc/net/tcp; do sleep 1; done

modprobe iscsi_tcp
iscsistart -i initiator -g 1 -p 5003 -a 127.0.0.1 -t test
deviceSysfs="$(printf %s /sys/class/iscsi_session/session*/device/target*/*/block/*)"
device="$(basename -- "$deviceSysfs")"
sleep 3

echo "<plaintext>" > performance.html
(
    uname -a
    iscsi-perf -t 5 iscsi://localhost:5003/test/0
    dd status=progress if="/dev/$device" of=/dev/null
    dd status=progress if="/dev/$device" of=/dev/null bs=1M
    dd status=progress if="/dev/$device" of=/dev/null bs=16M
) 2>&1 | tee -a performance.html

dmesg

# echo 1 >"$deviceSysfs/../../delete"

kill -- "$pid"
umount -l -- "$data"

sessionId="${deviceSysfs%%/device/*}"
sessionId="${sessionId##*/session}"
test -e "$selfDir/iscsi-destroy/iscsi-destroy" || go -C "$selfDir/iscsi-destroy" build
"$selfDir/iscsi-destroy/iscsi-destroy" "$sessionId" || :