cgroup: Add note about IO distribution availability.

This commit is contained in:
tastytea 2021-07-22 00:41:49 +02:00
parent 0be2de3cf8
commit 60ac230ca7
Signed by: tastytea
GPG Key ID: CFC39497F1B26E07

View File

@ -23,6 +23,7 @@ toc: true
:url-nice: https://manpages.debian.org/buster/coreutils/nice.1.en.html :url-nice: https://manpages.debian.org/buster/coreutils/nice.1.en.html
:url-htop: https://htop.dev/ :url-htop: https://htop.dev/
:url-ionice: https://manpages.debian.org/buster/util-linux/ionice.1.en.html :url-ionice: https://manpages.debian.org/buster/util-linux/ionice.1.en.html
:url-linux-git: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
We have Control Group v2 since 2016 but I had trouble finding good documentation We have Control Group v2 since 2016 but I had trouble finding good documentation
on how to use it. Most tutorials and blog posts only cover v1 or are specific to on how to use it. Most tutorials and blog posts only cover v1 or are specific to
@ -177,7 +178,7 @@ echo "$$" > cgroup.procs
This control group will increase the IO priority and limit the write speed to 2 This control group will increase the IO priority and limit the write speed to 2
pass:[<abbr title="Mebibyte, 1024 Kibibyte">MiB</abbr>] a second using the io pass:[<abbr title="Mebibyte, 1024 Kibibyte">MiB</abbr>] a second using the io
controllerfootnote:[link:{url-kernel-doc}#io[Kernel documentation on Control controllerfootnote:io[link:{url-kernel-doc}#io[Kernel documentation on Control
Group v2, section Controllers → IO]]. IO limits are set per device. You need to Group v2, section Controllers → IO]]. IO limits are set per device. You need to
specify the major and minor device numbers of the _device_ (not partition) you specify the major and minor device numbers of the _device_ (not partition) you
want to limit (in my case it is “8:0” for `/dev/sda`). Run `lsblk` or `cat want to limit (in my case it is “8:0” for `/dev/sda`). Run `lsblk` or `cat
@ -208,8 +209,14 @@ bypassing caches.]. You will see that the speed is around 2 MiB a second.
Kernel 5.14 introduced Kernel 5.14 introduced
**blkio.prio.class**footnote:[link:{url-kernel-doc-14}#io-priority[Kernel **blkio.prio.class**footnote:[link:{url-kernel-doc-14}#io-priority[Kernel
documentation on Control Group v2, section “IO Priority”]] that controls the IO documentation on Control Group v2, section “IO Priority”]] that controls the IO
priority. It seems to work like link:{url-ionice}[ionice]. I could not test it priority. It seems to work similar to link:{url-ionice}[ionice].
yet, since I run kernel 5.10.
[IMPORTANT]
Weight based distribution (*io.weight*) is available only if cfq-iosched is in
use and absolute bandwidth or IOPS limit distribution (*io.max*) is not
available for blk-mq devices.footnote:io[] The CFQ scheduler was removed in
kernel 5.0.footnote:[link:{url-linux-git}/commit/?id=f382fb0[git commit: “block:
remove legacy IO schedulers”]]
== Controlling process numbers == Controlling process numbers