TenForward

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

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

以前から Facebook のスライドなんかでは見かけた PSI という機能が 4.20 カーネルで入ったようですね。

CONFIG_PSI:

Collect metrics that indicate how overcommitted the CPU, memory,
and IO capacity are in the system.

If you say Y here, the kernel will create /proc/pressure/ with the
pressure statistics files cpu, memory, and io. These will indicate
the share of walltime in which some or all tasks in the system are
delayed due to contention of the respective resource.

In kernels with cgroup support, cgroups (cgroup2 only) will
have cpu.pressure, memory.pressure, and io.pressure files,
which aggregate pressure stalls for the grouped tasks only.

For more details see Documentation/accounting/psi.txt.

これを有効にすれば良さそう。さっそく Y で 4.20 を make。/proc/pressure なんてディレクトリが現れて、そこにファイルが 3 つほど置かれていました。

$ uname -a
Linux discovery 4.20.0-plamo64 #2 SMP PREEMPT Mon Jan 7 16:31:47 JST 2019 x86_64 GNU/Linux
$ for f in $(ls /proc/pressure/); do echo "$f: "; cat /proc/pressure/$f; done
cpu: 
some avg10=0.00 avg60=0.00 avg300=0.00 total=60048550
io: 
some avg10=0.00 avg60=0.00 avg300=0.00 total=30250330
full avg10=0.00 avg60=0.00 avg300=0.00 total=28401529
memory: 
some avg10=0.00 avg60=0.00 avg300=0.00 total=146509
full avg10=0.00 avg60=0.00 avg300=0.00 total=100482

cgroup2 をマウントすれば、cgroup にも同じようなファイルが現れるらしいがとりあえず今日はここまで(内容なさすぎ)。