9.3. コンテナー配置による CPU パフォーマンスの最適化
リアルタイムプロファイルを使用してホストをチューニングした後、特定の CPU にコンテナーを選択的に配置してコンテナーのランタイム動作を調整することで、パフォーマンスをさらに最適化できます。これらのストラテジーを使用すると、CPU 分離と cgroup 設定がコンテナー化されたワークロードのレイテンシーにどのように影響するかを調べることができます。
9.3.1. すべての CPU で podman を実行する リンクのコピーリンクがクリップボードにコピーされました!
rteval コンテナーで podman を実行するには、tuned リアルタイムプロファイルまたはカスタムシステムチューニングを使用してシステムをチューニングします。測定しているシナリオに CPU 分離が必要かどうかを判断します。特定のシナリオでコンテナーを実行する際に問題が発生するのを避けるため、CPU 分離を正しく設定してください。
/proc/cmdline の isolcpus= 引数を確認してください。isolcpus が設定されていない場合、システムは CPU を分離しておらず、すべての CPU でコンテナーを実行できます。
前提条件
-
/proc/cmdlineのisolcpus=引数がすべての CPU でコンテナーを実行するように設定されていない。 - ホストマシンは、Red Hat Enterprise Linux バージョン 10 以降で動作しています。
-
podmanサービスが実行されている。 -
rtevalコンテナーがインストールされ、実行されている。
手順
podmanレジストリーにログインします。$ podman login registry.redhat.iortevalコンテナーを実行します。コンテナーを実行するには、次のいずれかの方法を選択します。単一の NUMA ノードボックス上のすべての CPU の場合:
$ podman run -it --rm --privileged --pids-limit=0 registry.redhat.io/rhel10/rteval \ /bin/bash -c 'rteval --duration 2h'マルチ NUMA ノードマシンの場合:
$ podman run -it --rm --privileged --pids-limit=0 registry.redhat.io/rhel10/rteval \ /bin/bash -c 'rteval --duration 2h --loads-cpulist 0,1 --measurement-cpulist 2-47--pids-limit=0-
kcompileは、コンテナーランタイムのデフォルトの制限に達することなく実行できます。kcompileは、カーネル全体を再構築することなく、現在実行中のカーネルのカーネルモジュールをコンパイルするために使用されるコマンドラインユーティリティーです。 --privilegedコンテナーはホストシステム上のすべてのデバイスにアクセスできます。これは
rtevalが正しく実行するために必要です。これらのコマンドは、利用可能なすべてのノードにわたって単一のコンテナーを実行します。
tunedサービスはホストのチューニングを管理します。これにより、単一の CPU のみを使用している際にベアメタルのパフォーマンスを評価できます。
検証
新しいターミナルで、
rtevalコンテナーを含むすべてのコンテナーをリスト表示して、正しく実行されていることを確認します。$ podman ps -a