Ubuntuのcgroup v2でHugeTLBコントローラを有効にする方法

Ubuntuのcgroup v2でHugeTLBコントローラを有効にする方法

有効にしようとしています。巨大なTLB私のシステムのcgroup v2にコントローラがありますが、これを行う方法がわかりません。

私のシステムのコントローラのリストは次のとおりです。

cat /sys/fs/cgroup/cgroup.controllers 
cpuset cpu io memory pids rdma

私のシステムに表示されるmeminfoは次のとおりです。

cat /proc/meminfo | grep Huge
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
FileHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB

cgroup v2でHugeTLBコントローラを有効にするのに何かがありましたか?有効にする必要があるカーネルフラグやその他の設定はありますか?

答え1

承認ページの下部に示すように、Control Group v2はHugeTLBコントローラをサポートしています。

V1との違いは、v2をサポートし、v1階層にバインドされていないすべてのコントローラです。v2階層に自動的にバインドされ、ルートディレクトリに表示されます。

これにより、mountコマンドに追加のオプションを指定する必要はありません。

mount -t cgroup2 none $MOUNT_POINT

それだけで十分です。

いくつかのcgroupを作成し、cgroup.controllers関連ファイルを読み取って、巨大なTLBコントローラが利用可能であることを確認できます。

もちろん、(他のコントローラと同様に)デフォルトでは有効ではありません。


すべてのクレジットkernel.org公式文書。

答え2

ほとんどのデプロイカーネルはこの設定オプションを設定しますが、独自のカーネルをコンパイルした場合はそれを見逃す可能性がありますCONFIG_CGROUP_HUGETLB

現在のカーネルでこのオプションが有効になっていることを確認できます

grep CONFIG_CGROUP_HUGETLB /boot/config-`uname -r`

印刷されない場合は、CONFIG_CGROUP_HUGETLB=yこのオプションを使用してカーネルを再コンパイルする必要があります。

関連情報