我正在尝试限制服务(或进程/命令)的 IO 使用。(硬件设备上的 IO 读/写限制,不适用于网络。)
我从 systemd 找到了 IOAccounting:
systemd-run --scope --user -p "IOReadBandwidthMax=/dev/zero 1M" -p "IOAccounting=true" \
time dd if=/dev/zero count=1 bs=100M of=/tmp/foo conv=fdatasync
systemd-run --scope --user -p "IOWriteBandwidthMax=/dev/sdd 1M" -p "IOAccounting=true" \
time dd if=/dev/zero count=1 bs=100M of=/tmp/foo conv=fdatasync
该命令快速结束并报告 200/300 MB/s。当我运行命令时,结果完全相同,没有 systemd-run 包装器。
我还尝试编写没有 systemd-run 的 systemd 服务:IO 带宽限制不起作用。
你有什么建议吗?