36.3. コンテナーの実行
Containerfile を使用して構築されたコンテナーを実行することで、コンテナー化された環境でリアルタイムワークロードを実行できます。
前提条件
-
Podmanがインストールされています。 - リアルタイムワークロード用のコンテナーイメージをビルドしました。
手順
podman runコマンドを使用して、コンテナーを実行します。# podman run --device=/dev/cpu_dma_latency --cap-add ipc_lock --cap-add sys_nice --cap-add sys_rawio --rm -ti cyclictest /dev/cpu_dma_latency set to 0us policy: fifo: loadavg: 0.08 0.10 0.09 2/947 15 T: 0 ( 8) P:95 I:1000 C: 3209 Min: 1 Act: 1 Avg: 1 Max: 14 T: 1 ( 9) P:95 I:1500 C: 2137 Min: 1 Act: 2 Avg: 1 Max: 23 T: 2 (10) P:95 I:2000 C: 1601 Min: 1 Act: 2 Avg: 2 Max: 7 T: 3 (11) P:95 I:2500 C: 1280 Min: 1 Act: 2 Avg: 2 Max: 72 T: 4 (12) P:95 I:3000 C: 1066 Min: 1 Act: 1 Avg: 1 Max: 7 T: 5 (13) P:95 I:3500 C: 913 Min: 1 Act: 2 Avg: 2 Max: 87 T: 6 (14) P:95 I:4000 C: 798 Min: 1 Act: 1 Avg: 2 Max: 7 T: 7 (15) P:95 I:4500 C: 709 Min: 1 Act: 2 Avg: 2 Max: 29この例は、必須のリアルタイム固有のオプションを指定した
podman runコマンドを示しています。以下に例を示します。-
先入れ先出し (FIFO) スケジューラーポリシーは、
--cap-add=sys_niceオプションを介してコンテナー内で実行されているワークロードで使用できます。このオプションを使用すると、スレッドの CPU アフィニティーを設定することもできます。これは、リアルタイムワークロードをチューニングする際に重要な設定項目の 1 つです。 --device=/dev/cpu_dma_latencyオプションは、コンテナー内でホストデバイスを利用できるようにします (その後、CPU アイドル時間管理を設定するために cyclictest の負荷によって使用されます)。指定されたデバイスが利用できない場合、以下のようなエラーメッセージが表示されます。WARN: stat /dev/cpu_dma_latency failed: No such file or directoryこのようなエラーメッセージが表示された場合は、
podman-run(1) のman ページを参照してください。コンテナー内で特定のワークロードを実行するには、Podman の他のオプションが役立つ場合があります。場合によっては、
/dev/cpu/*/msrなどの CPU ごとのデバイスファイルをマッピングするディレクトリー階層を追加するために、--device=/dev/cpuオプションも追加する必要があります。
-
先入れ先出し (FIFO) スケジューラーポリシーは、