26 lines
1.5 KiB
Bash
26 lines
1.5 KiB
Bash
# mbits: throughput from the peer to an iperf3 server on this VM, in Mbit/s.
|
|
mbits() {
|
|
local srv=''
|
|
if ! listening 5201 tcp; then iperf3 -s -1 -p 5201 >/dev/null 2>&1 & srv=$!; sleep 1; fi
|
|
in_peer timeout 15 iperf3 -c 10.99.0.1 -t 2 -J 2>/dev/null |
|
|
python3 -c 'import json, sys; print(int(json.load(sys.stdin)["end"]["sum_received"]["bits_per_second"] / 1e6))'
|
|
[ -n "$srv" ] && kill $srv 2>/dev/null
|
|
true
|
|
}
|
|
num() { answer "$1" | grep -oE '[0-9]+(\.[0-9]+)?' | head -1 | cut -d. -f1; }
|
|
|
|
task 1 "The disk writer's service named and stopped"
|
|
need "/root/lab-answers/1 names the service" 'answer 1 | grep -q log-shipper'
|
|
need "log-shipper is stopped and disabled" '! active log-shipper && ! enabled log-shipper'
|
|
|
|
task 2 "Latency to the peer measured, and the delay removed"
|
|
need "/root/lab-answers/2 has the average RTT you measured (70 to 150 ms)" 'n=$(num 2); [ -n "$n" ] && [ "$n" -ge 70 ] && [ "$n" -le 150 ]'
|
|
need "le-host has no delay (netem) any more" '! tc qdisc show dev le-host | grep -q netem'
|
|
need "ping to the peer takes under 20 ms" 'ping -c3 -i 0.2 -W2 10.99.0.2 | awk -F/ "/^rtt|^round-trip/ {exit !(\$5 < 20)}"'
|
|
|
|
task 3 "Throughput measured, and the limit removed"
|
|
need "/root/lab-answers/3 has the throughput you measured (20 to 60 Mbit/s)" 'n=$(num 3); [ -n "$n" ] && [ "$n" -ge 20 ] && [ "$n" -le 60 ]'
|
|
need "iperf3 is installed" 'command -v iperf3'
|
|
need "the peer's le-peer has no rate limit (tbf) any more" '! in_peer tc qdisc show dev le-peer | grep -q tbf'
|
|
need "iperf3 from the peer gets over 200 Mbit/s" 'n=$(mbits); [ -n "$n" ] && [ "$n" -gt 200 ]'
|