NIC u NAPI Linux New API Open v
- Slides: 30
パケット処理機構/仮想NICバックエンド機構 u パケット処理機構 (仮想スイッチ) ü NAPI: Linux New API (Open v. Switch) ü netmap (VALE) ü Intel DPDK (OVS with DPDK, Lagopus) u 仮想NICバックエンド機構 ü vhost-net ü vhost-user 5
パケット処理機構と仮想スイッチ Linux NAPI DPDK VALEスイッチ user space kernel space netmap DPDK API 直接参照 DMA page Open v. Switch netmap API skb DMA page memory DMA 割り込み/ ポーリング NIC netmap ring DMA memory DMA from User Space memory DMA 割り込み/ ポーリング NIC DMA to User Space ポーリング NIC 6
OVS/DPDKとLagopusの違い OVS/DPDK (Run to completion) Linux NAPI netmap Processing DPDK user space CPU 1 I/O RX Processing I/O TXVALEスイッチ フロー単位で並列処理 I/O RX Processing Open v. Switch DPDK API CPU 2 I/O TX 直接参照 kernel space Lagopus (Pipeline) netmap API I/O RX CPU 1 DMA I/O page TX (Hugepage) I/O RX memory I/O RX skb 入力---処理---出力をパイプライン処理 DMA page Processing memory DMA 割り込み/ ポーリング NIC CPU 2 Processing netmap ring memory DMA CPU 3 割り込み/ ポーリング I/O TX NIC DMA from User Space DMA to User Space ポーリング NIC 7
評価(1): 評価環境 • エントリ数: 1 • スループット • in_port=1, output: 2 • 遅延 仮想スイッチ Open Source Traffic Analyzer† port 2 パケット処理機構 port 1 • 1 フロー 物理サーバ • UDP port 2 port 1 10 G Ethernet 物理サーバの性能 ソフトウェアバージョン CPU Intel Core i 7 3. 4 GHz (4 core, HT: off) OS Fedora 22 (4. 0. 4 -301 -x 86 64) Memory 16 GB OVS v 2. 4. 0 NIC Intel X 540 -T 2 10 Gb Ethernet netmap v 11. 1 Lagopus v 0. 2. 3 DPDK v 2. 1. 0 † Open Source Traffic Analyzer , https: //people. kth. se/~danieltt/pktgen/ 12
Throughput [Gbps] 評価(1): パケット転送速度 64 128 256 384 512 768 1024 1500 [B] 10 8 6 4 2 v 0. 2. 4で改善 0 OVS/NAPI VALE/netmap 約3. 5 Gbps (64 B) OVS/DPDK Lagopus/DPDK 14
評価(1): 1パケットに必要なCPUサイクル数† u CPU Hz (3. 4 G) ÷ pps から概算 OVS/NAPI VALE/netmap OVS/DPDK Lagopus/DPDK 2, 294 288 262 7, 389 OVS/NAPIに焦点を当てて要因を考察 † Assessing Soft- and Hardware Bottlenecks in PC-based Packet Forwarding Systems, Paul Emmerich et. al, Technische Universität München, ICN 2015 15
評価(1): OVS/NAPIの性能要因 skb header skb Linear Buf memory L 1 Cache RAM 2500 2000 1500 Cycles DMA page memcpy 1000 NIC 1000 500 0 64 memcpyだけで約1000サイクル消費 0 128 Data Size [B] 256 64 128 Data Size [B] 256 16
評価(1): パケット転送遅延 u 転送レート ü 100 K pps 500, 000 OSTA Counts 400, 000 OVS/DPDK 300, 000 VALE/netmap 200, 000 OVS/NAPI 100, 000 Lagopus/DPDK 0 10 20 Latency [us] 30 40 18
評価(1): パケット転送遅延 70, 000 500 K OSTA OVS/NAPI VALE/netmap OVS/DPDK Lagopus/DPDK 60, 000 Counts 50, 000 ハードウェア割り込みとポーリングが半々に混在 40, 000 30, 000 20, 000 10, 000 0 10 70, 000 60, 000 1 M 20 Latency [us] 30 40 OSTA OVS/NAPI VALE/netmap OVS/DPDK Lagopus/DPDKはポーリングのみであるため遅延ジッタが常に安定 Counts 50, 000 40, 000 ほとんどのパケットをポーリング処理 30, 000 20, 000 10, 000 0 10 20 Latency [us] 30 40 19
評価(2): 評価環境 VMの性能 CPU Memory OS 2 cores 1 GB Cent. OS 7. 2 Open Source Traffic Analyzer • 1 フロー • UDP VM port 2 仮想NICバックエンド機構 • エントリ数: 1 OVS • in_port=2, output: 1 port 1 観測点 物理サーバ port 1 10 G Ethernet 21
Pattern 1 VM VM コンテキストスイッチ以外 Pattern 2 OVS (User) OVS (Kernel) vhost-net port 1 Pattern 3 VM Pattern 4 (vhost-user) VM OVS (DPDK) User Kernel User 評価(2): 各実装パターンの評価 コンテキストスイッチ vhost-net port 1 22
評価(2): 評価結果 64 B 128 B 256 B 384 B 512 B 768 B 1024 B 1500 B Throughput [Gbps] 10 8 コンテキストスイッチが発生しない 6 4 メモリコピー カーネル/ユーザ空間間のコンテキストスイッチ 2 0 Pattern 1 Pattern 2 Pattern 3 Pattern 4 23
評価(3): 評価環境 in_port=3, output: 4 ü Pattern 1 と Pattern 4を対象 vhost-net/OVS(Kernel) vhost-user/OVS(DPDK) OVS/NAPI port 3 VM port 4 仮想NICバックエンド機構 in_port=1, output: 3 Open Source Traffic Analyzer port 2 in_port=4, output: 2 port 1 • 1 フロー OVS 物理サーバ • UDP port 1 port 2 10 G Ethernet 25
Throughput [Mpps] 評価(3): パケット転送速度 16 Pattern 1 14 Pattern 4 Theoretical 12 10 8 6 4 2 0 64 128 256 1. 6 384 512 Packet Size [B] 768 Pattern 1 1. 4 Pattern 4 1024 1500 評価(1): OVS/NAPI 1. 2 VMのOVS/NAPIがボトルネック 1 0. 8 0. 6 0. 4 コンテキストスイッチがボトルネック 0. 2 0 64 128 256 384 512 Packet Size [B] 768 1024 1500 26
- Linux napi
- 영국 beis
- Linux linux security module m1 support
- Uclinux
- Linux terminal api
- Jobscheduler open source
- Eso midas linux open
- Open telematics api
- Usbank developer portal
- Tmf apis
- Google maps open api
- Open architecture api
- Forum api
- Open office api
- Normally open timer symbol
- Open hearts open hands
- New open sql
- It shows the textwindow to enable interaction with it.
- Punctuating split speech
- New york pennsylvania new jersey delaware
- Fresh oil, new wine scripture
- New hartford cinema
- Characteristics of the articles of confederation
- New-old approach to creating new ventures
- Kotler keller marketing management
- Njbta
- New classical macroeconomics
- Chapter 16 toward a new heaven and a new earth
- Neil thisse is a loyalist who fled the colonies
- New classical and new keynesian macroeconomics
- Venn diagram roosevelt taft wilson