第9章 リアルタイムタスク実行のための rteval コンテナーの使用
Red Hat Enterprise Linux (RHEL) for Real Time の rteval (リアルタイム評価)コンテナーにより、重要なタスクの実行が低レイテンシーになります。リアルタイムの応答を維持し、タスクの実行を保証するために、さまざまなシステムの負荷下でタイマーウェイクタイムを測定します。
rteval ツールは、( cyclictest や rtlaなどのツールを使用して)測定プロセスを優先度の高いタスクとして設定します。この測定プロセスは、マシンで生成された負荷よりも優先されます。その結果、rteval コンテナーは、異なる負荷のリアルタイムタスクのウェイクアップ時間を測定し、システムがリアルタイムのワークロードを効果的に処理できるようにします。
9.1. rteval コンテナーのホストのテスト リンクのコピーリンクがクリップボードにコピーされました!
レイテンシーの影響を受けやすいワークロードで rteval コンテナーを実行するには、コンテナーテクノロジーが仮想化スタックで追加のカーネルを必要としないため、ホストマシンを調整する必要があります。ベアメタルに適用されるほとんどのチューニングストラテジーは、コンテナー環境にも適用されます。
ファイルで定義されたデフォルトのパラメーターを使用して、realtime -variables.conftuned-adm でリアルタイムプロファイルを適用する必要があります。
リアルタイム プロファイルは、次のタスクを実行します。
- さまざまなカーネルコマンドラインオプションを設定します。
- NUMA (Non-Uniform Memory Access)トポロジーを検出します。
-
複数の NUMA ノードが存在する場合、各ノードの最初の CPU を除くすべての CPU を
isolcpusセットに割り当てます。
rteval コンテナー用のホストマシンを設定します。
前提条件
- ホストマシンが Red Hat Enterprise Linux バージョン 9.6 以降で実行されている。
-
tunedパッケージおよびtuned-profiles-realtimeパッケージがインストールされている。 -
tunedサービスを実行している。 -
podmanアプリケーションがインストールされ、実行されている。
手順
必要なパッケージをインストールします。
$ sudo dnf install rteval kernel-rt podman -yインストールされたカーネルを表示します。
$ sudo grubby --info=ALL index=0 kernel="/boot/vmlinuz-5.XX.0-XX.X.X.el9_6.x86_64+rt" args="ro crashkernel=2G-64G:256M,64G-:512M resume=UUID=3e14acf4-a359-4045-b8fc-990ff83743ec rd.lvm.lv=rhel_rt-qe-11/root rd.lvm.lv=rhel_rt-qe-11/swap console=ttyS0,115200n81 $tuned_params" root="/dev/mapper/rhel_rt--qe--11-root" initrd="/boot/initramfs-5.XX.0-XX.X.X.el9_6.x86_64+rt.img $tuned_initrd" title="Red Hat Enterprise Linux (5.XX.0-XX.X.X.el9_6.x86_64+rt) 9.6 (Plow)" id="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-5.XX.0-XX.X.X.el9_6.x86_64+rt" index=1 kernel="/boot/vmlinuz-5.XX.0-XX.X.X.el9_6.x86_64" args="ro crashkernel=2G-64G:256M,64G-:512M resume=UUID=3e14acf4-a359-4045-b8fc-990ff83743ec rd.lvm.lv=rhel_rt-qe-11/root rd.lvm.lv=rhel_rt-qe-11/swap console=ttyS0,115200n81 $tuned_params" root="/dev/mapper/rhel_rt--qe--11-root" initrd="/boot/initramfs-5.XX.0-XX.X.X.el9_6.x86_64.img $tuned_initrd" title="Red Hat Enterprise Linux (5.XX.0-XX.X.X.el9_6.x86_64) 9.6 (Plow)" id="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-5.XX.0-XX.X.X.el9_6.x86_64" index=2 kernel="/boot/vmlinuz-0-rescue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" args="ro crashkernel=2G-64G:256M,64G-:512M resume=UUID=3e14acf4-a359-4045-b8fc-990ff83743ec rd.lvm.lv=rhel_rt-qe-11/root rd.lvm.lv=rhel_rt-qe-11/swap console=ttyS0,115200n81" root="/dev/mapper/rhel_rt--qe--11-root" initrd="/boot/initramfs-0-rescue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.img" title="Red Hat Enterprise Linux (0-rescue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX) 9.6 (Plow)" id="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-0-rescue"リアルタイムカーネルをデフォルトのカーネルとして設定します。
$ select a in /boot/vmlinuz-*rt*; do grubby --set-default=$a; break; donetuned-admを使用してリアルタイムプロファイルを適用します。$ sudo tuned-adm profile realtimeホストマシンを再起動します。
$ sudo reboot
検証
カーネルのバージョンおよびチューニングパラメーターを検証します。
$ sudo uname -r 5.XX.0-XX.X.X.el9_6.x86_64+rt$ sudo cat /proc/cmdline BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.XX.0-XX.X.X.el9_6.x86_64+rt root=/dev/mapper/rhel_rt--qe--11-root ro crashkernel=2G-64G:256M,64G-:512M resume=UUID=3e14acf4-a359-4045-b8fc-990ff83743ec rd.lvm.lv=rhel_rt-qe-11/root rd.lvm.lv=rhel_rt-qe-11/swap console=ttyS0,115200n81 skew_tick=1 tsc=reliable rcupdate.rcu_normal_after_boot=1 isolcpus=managed_irq,domain,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47 intel_pstate=disable nosoftlockup