有効にしようとしています。巨大な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
このオプションを使用してカーネルを再コンパイルする必要があります。