15.7. パフォーマンスプロファイルによる低レイテンシーを実現するためのノードのチューニング

パフォーマンスプロファイルを使用すると、特定のマシン設定プールに属するノードのレイテンシーの調整を制御できます。設定を指定すると、PerformanceProfile オブジェクトは実際のノードレベルのチューニングを実行する複数のオブジェクトにコンパイルされます。

  • ノードを操作する MachineConfig ファイル。
  • Topology Manager、CPU マネージャー、および OpenShift Container Platform ノードを設定する KubeletConfig ファイル。
  • Node Tuning Operator を設定する Tuned プロファイル。

手順

  1. クラスターを準備します。
  2. マシン設定プールを作成します。
  3. Performance Addon Operator をインストールします。
  4. ハードウェアとトポロジーに適したパフォーマンスプロファイルを作成します。パフォーマンスプロファイルでは、カーネルを kernel-rt、hugepages の割り当て、オペレーティングシステムのハウスキーピング用に予約される CPU、およびワークロードの実行に使用される CPU に更新するかどうかを指定できます。

    これは、典型的なパフォーマンスプロファイルです。

    apiVersion: performance.openshift.io/v1
    kind: PerformanceProfile
    metadata:
     name: performance
    spec:
     cpu:
      isolated: "5-15"
      reserved: "0-4"
     hugepages:
      defaultHugepagesSize: "1G"
      pages:
      -size: "1G"
       count: 16
       node: 0
     realTimeKernel:
      enabled: true  1
     numa:  2
      topologyPolicy: "best-effort"
     nodeSelector:
      node-role.kubernetes.io/worker-cnf: ""
1
有効な値は true または false です。true 値を設定すると、ノード上にリアルタイムカーネルがインストールされます。
2
Topology Manager ポリシーを設定するには、このフィールドを使用します。有効な値は none (デフォルト)、 best-effortrestricted、および single-numa-node です。詳細は、「Topology Manager Policies 」を参照してください。

15.7.1. CPU のパーティション設定

単一の NUMA ノードからオペレーティングシステムのハウスキーピングタスク用にコアまたはスレッドを予約し、ワークロードを別の NUMA ノードに配置することができます。これを実行する理由として、ハウスキーピングプロセスで同じ CPU 上で実行されるレイテンシーの影響を受けるプロセスに影響を与える可能性がある方法で CPU を使用する可能性があるためです。ワークロードを別の NUMA ノードで維持することにより、プロセスが相互に干渉しないようにすることができます。また、各 NUMA ノードには共有されない独自のメモリーバスがあります。

spec セクションに、CPU の 2 つのグループを指定します。

  • isolated: 最も低いレイテンシーが設定されます。このグループのプロセスには割り込みがないため、DPDK ゼロパケットロスの帯域幅がより高くなります。
  • reserved: ハウスキーピング CPU予約されたグループのスレッドはビジーになる可能性があるため、レイテンシーの影響を受けるアプリケーションは分離されたグループで実行される必要があります。「Create a pod that gets assigned a QoS class of Guaranteed 」を参照してください。