在「Using cgroups to limit I/O」這邊看到作者試著用 cgroups 限制 I/O 速度。
作者前面花了不少篇幅解釋 cgroups v1 無法正確限制 I/O 速度,後面就在講 cgroups v2 怎麼做:
So, in order to limit I/O when this I/O may hit the writeback kernel cache, we need to use both memory and io controllers in the cgroups v2!
這會需要 4.5+ 的 kernel,可能會需要手動更新,或是直接使用比較新的 distribution:
Since kernel 4.5, the cgroups v2 implementation was marked non-experimental.
然後照抄就可以了 (不過這邊的指定都需要 root,作者用 $
表示 shell 有點怪):
# mount -t cgroup2 nodev /cgroup2 # mkdir /cgroup2/cg2 # echo "+io" > /cgroup2/cgroup.subtree_control # echo "8:0 wbps=1048576" > io.max # echo $$ > /cgroup2/cg2/cgroup.procs