Skip to main content
QUICK REVIEW

[論文レビュー] Automatic Parallelization of Software Network Functions

Francisco Pereira, Fernando M. V. Ramos|arXiv (Cornell University)|Jul 27, 2023
Software-Defined Networks and 5GComputer Science被引用数 3
ひとこと要約

Maestro は、状態アクセスパターンを分析して NIC の受信側スケーリング (RSS) を設定することで、ソフトウェアネットワーク機能 (NF) を自動的に並列化するツールである。同じフローのパケットを同じコアにルーティングすることで、共有メモリのないアーキテクチャを実現し、コア間の調整を排除する。PCIe や 100 Gbps 線路レートのボトルネックに達するまで線形的なスケーリングを達成し、ハードウェアトランザクションメモリでさえも上回る性能を発揮する、特に並列化に不向きなワークロードでも同様である。

ABSTRACT

Software network functions (NFs) trade-off flexibility and ease of deployment for an increased challenge of performance. The traditional way to increase NF performance is by distributing traffic to multiple CPU cores, but this poses a significant challenge: how to parallelize an NF without breaking its semantics? We propose Maestro, a tool that analyzes a sequential implementation of an NF and automatically generates an enhanced parallel version that carefully configures the NIC's Receive Side Scaling mechanism to distribute traffic across cores, while preserving semantics. When possible, Maestro orchestrates a shared-nothing architecture, with each core operating independently without shared memory coordination, maximizing performance. Otherwise, Maestro choreographs a fine-grained read-write locking mechanism that optimizes operation for typical Internet traffic. We parallelized 8 software NFs and show that they generally scale-up linearly until bottlenecked by PCIe when using small packets or by 100Gbps line-rate with typical Internet traffic. Maestro further outperforms modern hardware-based transactional memory mechanisms, even for challenging parallel-unfriendly workloads.

研究の動機と目的

  • 手動によるソフトウェアネットワーク機能 (NF) の並列化の課題に取り組みながら、意味的整合性を保ちつつパフォーマンスを最大化すること。
  • RSS の設定や同期メカニズムの選定といった低レベルの並列化タスクを自動化することで、開発者の負担を軽減すること。
  • シンボリック実行を活用してフローの意味論と状態アクセスパターンを推定することで、コンmodity ハードウェア上で高性能な NF を実現すること。
  • 知的なパケットステアリングにより、コア数に比例した線形的なスケーリングを実現し、コア間の調整を最小限に抑えること。
  • 既存のソリューション、特にハードウェアトランザクションメモリを上回る性能を発揮すること。特に、フローチャンジが激しい、または複雑な状態管理を要するワークロードでも同様である。

提案手法

  • 順次的 NF 実装を分析するためにシンボリック実行を用い、フロー境界(例:TCP/UDP フローの 5 タプル)を定義する制約を抽出する。
  • 状態アクセスパターンの包括的なシンボリックモデルを構築し、同じ状態にアクセスするパケットを特定する。
  • 制約ソルバーを用いて、同じフローのパケットを同じ CPU コアにマッピングする RSS ハッシュ設定を生成する。
  • 設定済みの RSS を使用して、共有メモリの調整が一切不要な共有ノットビングアーキテクチャを実現する並列 NF の自動生成を行う。
  • 共有ノットビングが意味論的に安全でない場合には、細粒度の読み書きロックメカニズムにフォールバックし、典型的な Zipfian トラフィックパターンを最適化する。
  • DPDK および Vigor API と統合することで、既存の NF フレームワークとの互換性を確保するとともに、正しさを保つ。
Figure 1: Maestro’s architecture
Figure 1: Maestro’s architecture

実験結果

リサーチクエスチョン

  • RQ1フロー意味論の自動的分析は、手動による介入なしに安全かつ効率的なソフトウェア NF の並列化を可能にするか。
  • RQ2RSS 設定をどの程度自動化できるか。これにより、コア間の調整を排除する共有ノットビングアーキテクチャを実現できるか。
  • RQ3多様なワークロード下で、自動的に並列化された NF のパフォーマンスは、手動で最適化されたものやハードウェアアクセラレーションされたものと比べてどの程度か。
  • RQ4シンボリック実行と制約ソルバーは、NF における状態アクセスパターンの推定とパケット配分のガイドラインとして効果的に機能するか。
  • RQ5高頻度のフローチャンジトラフィックが自動的に並列化された NF に与えるパフォーマンスへの影響は何か。Maestro はその影響をどのように軽減するか。

主な発見

  • Maestro は、小サイズのパケットでも PCIe バンド幅や 100 Gbps 線路レートのボトル neck に達するまで、コア数に比例したスケーリングを実現する。
  • 通常のインターネットトラフィック(大多数のパケットが少数の長寿命フローに属する)を想定したワークロードでは、Maestro の NAT 実装は VPP の 46% に対して L1 キャッシュミス率が 55% まで向上し、RAM アクセスを削減する。
  • Maestro が自動的に並列化した NF は、本質的に並列化に不向きなワークロードでも、ハードウェアトランザクションメモリ機構を上回る性能を発揮する。
  • Maestro が生成する共有ノットビングアーキテクチャは、コア間の調整を完全に排除し、通常のトラフィックパターン下でロックベースの代替手法よりも高いパフォーマンスを実現する。
  • Maestro のアプローチにより、開発者の作業は単一の設定ステップにまで簡素化され、キャッシュコherence や RSS タイニングの低レベルな知識がなくても高性能な NF を実現できる。
  • このツールは、DPDK ベースの NF 8 個を正常に並列化し、NAT やファイアウォール、トラフィックモニタ機能を含む多様なワークロードで性能向上が検証された。
Figure 2: Example outputs of the Constraints Generator.
Figure 2: Example outputs of the Constraints Generator.

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。