# XDPerf XDPerf は、[[XDP]] と eBPF の live frames mode による高速パケット送出と、[[WebAssembly]] プラグインによるパケットテンプレート・変化規則を組み合わせたネットワークトラフィックジェネレーターである。 Go アプリケーションへ [[wazero]] を組み込み、Wasm が返したテンプレートを eBPF マップへ登録し、XDP が未変更の upstream ドライバを通じて送信する。(Source: [[@2026__KubeCon Japan Community Day__XDPerf - A High-Performance Traffic Generator Built with WASM and eBPF]]) ## 中心設計 - 柔軟性: Rust、TinyGo、Go、C などからコンパイルした Wasm プラグインでパケット定義を記述 - 送信: `BPF_PROG_TEST_RUN` の live frames mode で、カーネル内ループから `XDP_TX` を実行 - メモリ: 一つの base packet と少数バイトの差分エントリを使い、全長 packet の毎回コピーを避ける - 運用: DPDK の NIC 占有、hugepage、VFIO/UIO ドライバ束縛を避け、単一 Go バイナリとして導入 - 拡張: 新しいプロトコルは eBPF を変更せず Wasm プラグインとして追加 ## 性能評価 資料の測定環境は Intel E810-C 100GbE、Linux 7.2-rc/6.8、32 コア Intel Xeon Platinum 8362 である。 64B で 116.5 Mpps、64B round-trip RX の 24 TX コアで 110.7 Mpps、256B 以上で 100G wire rate を示す。 IOMMU を有効にした 42.3 Mpps は `iommu=pt` で 115.8 Mpps へ改善し、veth では 1 queue の 7.4 Mpps に対して 8 queues で 61.3 Mpps となった。(Source: [[@2026__KubeCon Japan Community Day__XDPerf - A High-Performance Traffic Generator Built with WASM and eBPF]]) ## 関連 - 開発・発表: [[Takeru Hayasaka]] - 所属: [[BBSakura Networks]] - 概念: [[XDP]] / [[eBPF]] / [[WebAssembly]] / [[RSS(Receive Side Scaling)]] - 比較対象: [[DPDK]] / [[TRex]] / [[カーネルバイパスネットワーキング]] - ソース: [[@2026__KubeCon Japan Community Day__XDPerf - A High-Performance Traffic Generator Built with WASM and eBPF]]