第16章 リアルタイムおよび低レイテンシーワークロードのプロビジョニング
多くの組織、特に金融業界や通信業界では、ハイパフォーマンスコンピューティングと予測可能な低レイテンシーが求められます。
OpenShift Container Platform は、OpenShift Container Platform アプリケーションの低レイテンシーパフォーマンスと一貫した応答時間を実現するための自動チューニングを実装する Node Tuning Operator を提供します。このような変更を行うには、パフォーマンスプロファイル設定を使用します。kernel-rt へのカーネルの更新、Pod インフラコンテナーを含むクラスターおよびオペレーティングシステムのハウスキーピング作業用 CPU の予約、アプリケーションコンテナーがワークロードを実行するための CPU の分離、未使用の CPU の無効化による電力消費削減を行うことができます。
アプリケーションを作成するときは、RHEL for Real Time プロセスおよびスレッド に記載されている一般的な推奨事項に従ってください。
16.1. リアルタイム機能を備えたワーカーに低レイテンシーのワークロードをスケジュールする
リアルタイム機能を設定するパフォーマンスプロファイルを適用したワーカーノードに、低レイテンシーのワークロードをスケジュールできます。
					特定のノードでワークロードをスケジュールするには、Pod カスタムリソース (CR) でラベルセレクターを使用します。ラベルセレクターは、Node Tuning Operator によって低レイテンシー用に設定されたマシン設定プールに割り当てられているノードと一致している必要があります。
				
前提条件
- 
						OpenShift CLI (oc) がインストールされている。
- 
						cluster-admin権限を持つユーザーとしてログインしている。
- 低レイテンシーのワークロード向けにワーカーノードをチューニングするパフォーマンスプロファイルをクラスターに適用した。
手順
- 低レイテンシーのワークロード用の - PodCR を作成し、クラスターに適用します。次に例を示します。- リアルタイム処理を使用するように設定した - Pod仕様の例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
						Pod の runtimeClassNameを performance-<profile_name> の形式で入力します。<profile_name> はPerformanceProfileYAML のnameです。上記の例では、nameはperformance-dynamic-low-latency-profileです。
- Pod が正常に実行されていることを確認します。ステータスが - runningであり、正しい cnf-worker ノードが設定されている必要があります。- oc get pod -o wide - $ oc get pod -o wide- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 予想される出力 - NAME READY STATUS RESTARTS AGE IP NODE dynamic-low-latency-pod 1/1 Running 0 5h33m 10.131.0.10 cnf-worker.example.com - NAME READY STATUS RESTARTS AGE IP NODE dynamic-low-latency-pod 1/1 Running 0 5h33m 10.131.0.10 cnf-worker.example.com- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- IRQ の動的負荷分散向けに設定された Pod が実行される CPU を取得します。 - oc exec -it dynamic-low-latency-pod -- /bin/bash -c "grep Cpus_allowed_list /proc/self/status | awk '{print $2}'"- $ oc exec -it dynamic-low-latency-pod -- /bin/bash -c "grep Cpus_allowed_list /proc/self/status | awk '{print $2}'"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 予想される出力 - Cpus_allowed_list: 2-3 - Cpus_allowed_list: 2-3- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
検証
ノードの設定が正しく適用されていることを確認します。
- ノードにログインして設定を確認します。 - oc debug node/<node-name> - $ oc debug node/<node-name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- ノードのファイルシステムを使用できることを確認します。 - chroot /host - sh-4.4# chroot /host- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 予想される出力 - sh-4.4# - sh-4.4#- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- デフォルトのシステム CPU アフィニティーマスクに、CPU 2 や 3 などの - dynamic-low-latency-podCPU が含まれていないことを確認します。- cat /proc/irq/default_smp_affinity - sh-4.4# cat /proc/irq/default_smp_affinity- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - 33 - 33- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- システムの IRQ が - dynamic-low-latency-podCPU で実行されるように設定されていないことを確認します。- find /proc/irq/ -name smp_affinity_list -exec sh -c 'i="$1"; mask=$(cat $i); file=$(echo $i); echo $file: $mask' _ {} \;- sh-4.4# find /proc/irq/ -name smp_affinity_list -exec sh -c 'i="$1"; mask=$(cat $i); file=$(echo $i); echo $file: $mask' _ {} \;- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
低レイテンシー用にノードをチューニングするときに、保証された CPU を必要とするアプリケーションと組み合わせて実行プローブを使用すると、レイテンシーが急上昇する可能性があります。代わりに、適切に設定されたネットワークプローブのセットなど、他のプローブを使用してください。