5.5. 仮想マシンに物理コアを割り当てる
クラスター管理者は、異なる仮想マシンが同じ物理コアを共有することを許可するのではなく、物理コア全体を特定の仮想マシンに割り当てることができます。物理コア全体のみを使用するように仮想マシンを設定することで、高スループットまたはレイテンシーが重要な仮想マシンのパフォーマンスを最適化できます。
同時マルチスレッディング (SMT) 対応システムでは、次の利点があるため、物理コア全体のみを割り当てることが重要です。
- ノイジーネイバーやリソースの競合の防止
- パフォーマンスの低下の軽減
- 予測可能なレイテンシー
- 排他的な CPU リソースの確保
5.5.1. 仮想マシンに物理コアを完全に割り当てるように設定します リンクのコピーリンクがクリップボードにコピーされました!
KubeletConfig カスタムリソース (CR) の cpuManagerPolicy および cpuManagerPolicyOptions 設定を変更することで、物理コア全体の割り当てを設定できます。
前提条件
- OpenShift Virtualization がインストールされた OpenShift Container Platform クラスターへのクラスター管理者アクセス権がある。
-
OpenShift CLI (
oc) がインストールされている。 - 仮想マシンが実行されているノードで CPU Manager が有効になっている。
手順
KubeletConfigCR を編集して、必要なcpuManagerPolicyおよびcpuManagerPolicyOptions設定を追加します。apiVersion: machineconfiguration.openshift.io/v1 kind: KubeletConfig # ... cpuManagerPolicy: static cpuManagerPolicyOptions: full-pcpus-only: true kubeReserved: cpu: "1" # ...-
排他的 CPU 割り当てを有効にするには、
cpuManagerPolicy: staticポリシーを設定する必要があります。この設定は、cpuManagerPolicyOptions設定を指定するための前提条件です。 -
full-pcpus-only: trueポリシーオプションを設定して、静的 CPU Manager ポリシーが物理コア全体のみ割り当てるようにする必要があります。 -
kubeReserved設定でcpu: "1"を設定して、システム用に 1 つの CPU を予約する必要があります。そうすることで、システムのコア機能は正常に動作するために必要な CPU に常時アクセスできるようになり、クラスターの安定性が確保されます。
-
排他的 CPU 割り当てを有効にするには、
次のコマンドを実行して、
KubeletConfigCR に変更を適用します。$ oc apply -f <filename>.yaml
検証
次のコマンドを実行して出力を調べ、変更を適用したノード上の kubelet 設定を調査します。
$ oc debug node/<node_name> -- chroot /host cat /etc/kubernetes/kubelet.conf | grep -E -A 2 'cpuManagerPolicy|kubeReserved'出力例:
cpuManagerPolicy: static cpuManagerPolicyOptions: full-pcpus-only: true -- kubeReserved: cpu: "1"