Files

36 lines
1.2 KiB
Bash

pkg_install sysstat
peer_up
mkdir -p /usr/local/lib/le-lab /var/lib/log-shipper
# Task 1: a service that writes small synchronous blocks all the time.
cat >/usr/local/lib/le-lab/log-shipper.py <<'Y'
import os, time
open("/proc/self/comm", "w").write("log-shipper")
fd = os.open("/var/lib/log-shipper/spool.dat", os.O_WRONLY | os.O_CREAT | os.O_DSYNC, 0o600)
block = b"x" * 4096
n = 0
while True:
os.pwrite(fd, block, (n % 2048) * 4096)
n += 1
time.sleep(0.004)
Y
cat >/etc/systemd/system/log-shipper.service <<'Y'
[Unit]
Description=Log shipper
[Service]
ExecStart=/usr/bin/python3 /usr/local/lib/le-lab/log-shipper.py
[Install]
WantedBy=multi-user.target
Y
systemctl daemon-reload
systemctl enable --now --quiet log-shipper.service
# Task 2: 80 ms of delay on this VM's side; task 3: 40 Mbit/s on the peer's.
tc qdisc replace dev le-host root netem delay 80ms 10ms
ip netns exec lepeer tc qdisc replace dev le-peer root tbf rate 40mbit burst 64kb latency 50ms
if systemctl is-active --quiet firewalld; then
firewall-cmd -q --query-port=5201/tcp && state_set port-open 1
firewall-cmd -q --permanent --query-port=5201/tcp && state_set port-open-permanent 1
fi
true