DPDK アプリケーションを解析

インテル® VTune™ プロファイラーの入出力解析を使用して、DPDK アプリケーションのプロファイルして Rx およびイベントキュー操作を行うポーリングスレッドのバッチ統計を収集します。

インテル® VTune™ プロファイラーを使用して DPDK アプリケーションをプロファイルするには、DPDK がインテル® VTune™ プロファイラー・オプションを有効にしてビルドされていることを確認します。詳細については、「DPDK ガイド」 (英語) を参照してください。

DPDK を FD.io VPP (英語) プラグインとしてプロファイルする場合、「インテル® VTune™ プロファイラーでプロファイル」 (英語) で説明されているフラグを使用して、build/external/packages/dpdk.mk の DPDK_MESON_ARGS 環境変数を変更します。

DPDK 統計収集は FreeBSD* ターゲットではサポートされておらず、プロファイル・システム・モードでは利用できません。

Rx バッチ統計を解析

[サマリー] タブから開始し、DPDK Rx バッチ統計 分布図を調査すると、パケット取得バッチのサマリー統計と Rx コア利用率の完全な特性を確認できます。分布図は、特定の Rx キューに関連付けられたポーリングスレッドで利用できます。

Rx スピン時間を解析

あるコアでポーリングループが実行されている間、DPDK がアイドル状態で費やすループサイクル数に関わりなく、このコアの CPU 時間 メトリックは常に 100% 近くになります。そのため、CPU 時間 メトリックは、パケット取得でコアがどのように利用されているか確実に識別することはできません。このポーリングモデルでは、より適切な利用率メトリックは、無駄なポーリング・ループ・サイクルの比率である Rx スピン時間 であるかもしれません。無駄なサイクルとは、DPDK がパケットを受信しないループ反復です。

[DPDK Rx スピン時間] メトリックは、ポーリングループの総サイクル数に対するパケットを取得しないポーリングサイクルの比率、またはゼロパケットを返す rte_eth_rx_burst() 関数呼び出し数を示します。



[プラットフォーム] タブで、DPDK Rx スピン時間 メトリックをスレッド単位でタイムライン上に表示します。

DPDK アプリケーションのコア利用率の詳細については、クックブックのレシピを参照してください。

DPDK イベントデキューの統計を解析

入出力解析を使用して、DPDK eventdev デキューバッチ統計情報を収集し、eventdev パイプラインの構成効率を解析できます。

[サマリー] タブの [DPDK イベントデキュー統計] セクションから調査を始めます。

この分布図は、DPDK eventdev ライブラリーからのパケット (イベント) デキュー操作のバッチ統計を表します。これは、イベントデバイスをポーリングするそれぞれのワーカースレッドを表し、各イベント・デバイス・ポートの統計情報を示します。分布図を調査して、インバランスな負荷分散、オーバーサブスクリプション、または利用されていないワーカースレッドを特定します。

DPDK イベントデキューのスピン時間を解析

[DPDK Rx スピン時間] メトリックは、ポーリングループの総サイクル数に対するパケットを取得しないポーリングサイクルの比率、またはゼロパケットを返す rte_eth_rx_burst() 関数呼び出し数を示します。



[プラットフォーム] タブに移動し、タイムライン上のDPDK イベント・デキュー・スピン時間メトリックを調査します。ワーカーごとのデキュー統計は、ロードバランスの詳細を明確にし、パイプライン構成の効率を解析してパイプラインのボトルネックを特定することを可能にします。

DPDK eventdev パイプラインの詳細については、クックブックのレシピ「DPDK イベントデバイスのプロファイル」を参照してください。

関連情報