6.10. Linux cgroup の設定
Linux コントロールグループバージョン 1 (cgroup v1) はデフォルトで有効になっています。node.config
オブジェクトを編集して、クラスターで Linux コントロールグループバージョン 2 (cgroup v2)を有効にできます。OpenShift Container Platform で cgroup v2 を有効にすると、クラスター内のすべての cgroup バージョン 1 コントローラーおよび階層が無効になります。
cgroup v2 は、Linux cgroup API の現行バージョンです。cgroup v2 では、統一された階層、安全なサブツリー委譲、Pressure Stall Information 等の新機能、および強化されたリソース管理および分離など、cgroup v1 に対していくつかの改善が行われています。ただし、cgroup v2 には、cgroup v1 とは異なる CPU、メモリー、および I/O 管理特性があります。したがって、一部のワークロードでは、cgroup v2 を実行するクラスター上のメモリーまたは CPU 使用率にわずかな違いが発生する可能性があります。
必要に応じて、cgroup v1 と cgroup v2 の間で変更できます。詳細については、このセクションの「その他のリソース」の「ノードでの Linux cgroup の設定」を参照してください。
現在、CPU 負荷分散の無効化は cgroup v2 ではサポートされていません。その結果、cgroup v2 が有効になっている場合は、パフォーマンスプロファイルから望ましい動作が得られない可能性があります。パフォーマンスプロファイルを使用している場合は、cgroup v2 を有効にすることは推奨されません。
前提条件
- OpenShift Container Platform クラスター (バージョン 4.12 以降) が実行中。
- 管理者権限を持つユーザーとしてクラスターにログインしている。
手順
ノードで cgroup v2 を有効にします。
node.config
オブジェクトを編集します。oc edit nodes.config/cluster
$ oc edit nodes.config/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.cgroupMode: "v2"
を追加:node.config
オブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- cgroup v2 を有効にします。
検証
マシン設定をチェックして、新しいマシン設定が追加されたことを確認します。
oc get mc
$ oc get mc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 予想どおり、新しいマシン設定が作成されます。
新しい
kernelArguments
が新しいマシン設定に追加されたことを確認します。oc describe mc <name>
$ oc describe mc <name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cgroup v2 の出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードをチェックして、ノードのスケジューリングが無効になっていることを確認します。これは、変更が適用されていることを示しています。
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードが
Ready
状態に戻ったら、そのノードのデバッグセッションを開始します。oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /host
をデバッグシェル内のルートディレクトリーとして設定します。chroot /host
sh-4.4# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sys/fs/cgroup/cgroup2fs
ファイルがノードに存在することを確認します。このファイルは cgroup v2 によって作成されます。stat -c %T -f /sys/fs/cgroup
$ stat -c %T -f /sys/fs/cgroup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
cgroup2fs
cgroup2fs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow