TenForward

技術ブログ。はてなダイアリーから移転しました

Linux 4.20 で導入の PSI 機能(2)

前回 はとりあえず /proc/pressure の中身を見てみましたが、PSI 機能は cgroup v2 とも連携しています。というわけで、今回は cgroup v2 をマウントしてみましょう(前回以上に中身なし)。

まずは cgroup v2 をマウントして、コントローラーを子 cgroup で使えるように登録します。このあたりは連載 をどうぞ。

$ sudo mount -t cgroup2 -o nsdelegate cgroup2 /sys/fs/cgroup/
$ echo "+io +memory +cpu +pids" | tee /sys/fs/cgroup/cgroup.subtree_control
+io +memory +cpu +pids
$ cat /sys/fs/cgroup/cgroup.subtree_control
cpu io memory pids

子 cgroup を作って中身を覗いてみましょう。

$ sudo mkdir test01
$ ls
cgroup.controllers      cgroup.stat             cpu.pressure     io.max          memory.high       memory.pressure      pids.current
cgroup.events           cgroup.subtree_control  cpu.stat         io.pressure     memory.low        memory.stat          pids.events
cgroup.max.depth        cgroup.threads          cpu.weight       io.stat         memory.max        memory.swap.current  pids.max
cgroup.max.descendants  cgroup.type             cpu.weight.nice  memory.current  memory.min        memory.swap.events
cgroup.procs            cpu.max                 io.latency       memory.events   memory.oom.group  memory.swap.max

"pressure" という名前が付くファイルが登場していますね。

$ for f in $(ls *.pressure); do echo "$f: "; cat $f; done
cpu.pressure: 
some avg10=0.00 avg60=0.00 avg300=0.00 total=0
io.pressure: 
some avg10=0.00 avg60=0.00 avg300=0.00 total=0
full avg10=0.00 avg60=0.00 avg300=0.00 total=0
memory.pressure: 
some avg10=0.00 avg60=0.00 avg300=0.00 total=0
full avg10=0.00 avg60=0.00 avg300=0.00 total=0

はい。前回の /proc/pressure 以下に登場したファイルと同じような中身ですね。