100Gbpsソフトウェアルータの実現可能性に関する論文

1,916 views

Published on

100Gbpsソフトウェアルータの実現可能性に関する考察

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,916
On SlideShare
0
From Embeds
0
Number of Embeds
57
Actions
Shares
0
Downloads
0
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

100Gbpsソフトウェアルータの実現可能性に関する論文

  1. 1. Building a Single-Box100 Gbps Software RouterSangjin Han, Keon Jang, KyoungSoo Park, Sue MoonKAISTIn IEEE Workshop on Local and Metropolitan AreaNetworks, 2010id:y_uuki / @y_uuk11
  2. 2. PacketShader: a GPU-accelerated Software RouterSangjin Han, Keon Jang, KyoungSoo Park and Sue Moon.In proceedings of ACM SIGCOMM 2010, Delhi, India.September 2010SSLShader: Cheap SSL Accelerationwith Commodity ProcessorsKeon Jang, Sangjin Han, Seungyeop Han, Sue Moon, andKyoungSoo Park.In proceedings of USENIX NSDI 2011, Boston, MA, March同じ研究グループの論文2
  3. 3. Ⅰ. Introduction3
  4. 4. Introduction$ ソフトウェアルータは柔軟なパケット処理のための魅力的なプラットフォームである$ 初期のルータは汎用コンピュータで構築されていた$ 90年代後半から10Gbpsの高品質ルータや特殊なハードウェアが台頭$ 最近のPCハードウェアを用いたソフトウェアルータがコストパフォーマンスの面で競争$ マルチコアCPU,高帯域幅NIC,高速なCPU-メモリ間のインターコネクトおよびシステムバスなど$ RouteBricksのような実験的なソフトウェアルータ(8.33 Gbps)4
  5. 5. Introduction$ 現在もしくは予測可能な未来の技術でSingle Boxソフトウェアルータの性能をどれくらいだせるのか?$ 予測されるハードルをまとめ,単一のx86マシンで100Gbpsのスループットを達成する計画をたてた5
  6. 6. Ⅱ. Opportunities andChallenges6
  7. 7. 高性能ハードウェアアーキテクチャ$ 近年のIntelとAMDのアーキテクチャ改良$ マルチコア・プロセッサ$ 各コアに対して平等に大きなメモリ帯域幅を提供するCPUに統合されたメモリコントローラ$ 10 Gbps NICのような周辺機器に高速に接続するPCIExpress$ Intel QuickPath Interconnect(QPI)やAMDHyperTransportのようなpoint to pointインターコネクトにより互いに接続されたマルチCPUソケット$ これらのリソースを効果的に活用する高性能ソフトウェアルータを構築する となる7
  8. 8. ルータのハードウェア構成例$ NUMA: CPUごとにローカルなメモリをもつアーキテクチャ$ IOH(I/Oハブ): NICやストレージとの接続2 NUMA nodes10Gx68
  9. 9. パフォーマンスボトルネック$ 前述のルータアーキテクチャにおけるパフォーマンスボトルネックを考察する$ 以下の観点からボトルネックを考察$ CPU サイクル$ I/O 帯域幅$ メモリ帯域幅9
  10. 10. CPUサイクル$ モダンなNICは,各CPUコアに対して独立したパケットキューをもつため,CPUコア数に対してスケールする$ しかし,小さなパケットではパケットフォワーディングのようなper-packet処理が支配的となる$ 10Gbps環境では,マルチコアCPUでさえ,per-packet処理のコストは深刻である10
  11. 11. CPUサイクル$ RouteBricksでは,NIC portから別のNIC portにフォワードするために,1,299 CPUサイクル必要$ もし最小のパケットサイズ(64Bytes)で100Gbps(146M pps) を達成しようとすると,277GHz CPUサイクル必要$ 最新のIntel X7560 CPU(2.26GHz x 8コア) x 4 CPUソケットでさえ,合計サイクルは72.3GHz程度であり,4倍の性能が必要11
  12. 12. CPUサイクル$ per-packet処理のオーバヘッドを改善できるか?$ さらなる性能向上のために以下を提案$ パケットバッファの動的確保をやめて,固定バッファを使う$ 強制的なキャッシュミスを防ぐために,パケットデータをディスクリプタごしにprefetch (?)$ cache bouncingを最小化して,CPUコア間の誤ったキャッシュの共有を削減 [6]$ これらの最適化によりper-packet処理のオーバヘッドを1/6まで削減 [4]$ 必要なCPUサイクル数が 277GHz ➔ 30GHzとなり,現在のCPUでも達成可能$ パケットI/O以外の処理はFPGAやGPUにオフロード12
  13. 13. I/O帯域幅$ NICから受信したパケットはPCIeリンク,IOHs,QPIリンク,最終的にメモリバスを通る$ そのあと,CPUがメモリアクセスによりパケットを処理し,逆順にパケットを送信する$ NIC CPUのパケットデータパスにおけるボトルネックを調査13
  14. 14. I/O帯域幅 - PCIe$ 現在の10GbE NICは1つまたは2つのポートをもち,ホストインタフェースとしてPCIe x8$ PCIe 2.0は1レーンあたり双方向で4Gbps, x8で32Gbps$ 100 Gbpsを達成するためには,少なくとも5個のx8スロットが必要$ 単一のIntel 5520または7500 IOHは4つまでのx8スロットしかサポートしてない$ したがって,マザボード上に2つのIOHが必要$ Super Micro Computer s X8DAH+-Fを使用$ 4つのPCIe 2.0 x8スロットと2つのx16スロットをもつ14
  15. 15. I/O帯域幅 - QuickPath Interconnect$ QPIリンクは4つの役割がある$ ① CPUソケット to CPUソケット$ ② IOH to IOH$ ③ CPU to IOH$ 各QPIリンクは双方向で102.4 Gbps$ 最悪のシナリオは全パケットが片方のIOHで受信され,もう片方のIOHにフォワーディングされることである$ ②,③について片方向のリンク(50Gbps)しか使えない$ リンク①については,各パケットが同じノードのCPUで処理されて,NICがパケットを同じノードのメモリにコピーする限り問題ない①②③③15
  16. 16. I/O帯域幅 - 計測手法$ 8つの2ポートNICのうち,半分をパケットジェネレータに使い,半分を評価に使う$ 評価のために2つのシステムを使う$ 2個のCPUソケットと2個のIOHをもつサーバ$ 1個のCPUソケットと1個のIOHをもつデスクトップ$ デスクトップは3個のPCIeスロットをもち,2つはNIC,もう1つはグラフィックカード$ I/O帯域幅を正確に測定し,ボトルネックを明らかにするために3種類の構成で実験する16
  17. 17. I/O帯域幅 - 計測手法(構成1)送信スループットは50Gbpsで抑えられる受信スループットは30Gbpsフォワーディングは20Gbps17
  18. 18. I/O帯域幅 - 計測手法(構成2)送信スループットは80Gbps(理論最大値)受信/フォワーディングは60/40Gbps.構成1の2倍2CPUソケット/2IOH構成では100Gbpsは達成できないnode-crossingでもかわらないので,QPIリンクがボトルネックではない18
  19. 19. I/O帯域幅 - 計測手法(構成3)送受信ともにスループットは2個のNICでの最大スループットである40Gbps送信と受信のスループット差の原因は何か?構成1,2での受信スループットの低下は,2個のCPUソケットよりも2個のIOHが原因フォワーディング性能が送信/受信性能より低いメモリボトルネックにより制限されている(次ページ)19
  20. 20. メモリ帯域幅$ フォワーディングは様々なメモリアクセスを伴う$ 100Gbpsトラフィックをフォワーディングするためのメモリ帯域幅は少なくとも400Gbps必要$ NICとメモリ間の100Gbps転送$ メモリとCPU間の100Gbps転送$ 送信と受信で双方向必要なので2倍$ 各パケットごとに16バイトのread/writeメモリアクセスが発生$ さらにパケット長に依存してメモリバスに負荷がかかる400 Gbps20
  21. 21. メモリ帯域幅$ p20で送信/受信性能よりもフォワーディング性能が低い理由はメモリ帯域幅が不足しているため$ フォワーディングに要するCPU利用率は100%である$ より大きなメモリ帯域幅を得るために,メモリオーバクロックするとフォワーディング性能が送信/受信性能に近くなった$ 実験ではDDR3 1,333MHzのトリプルチャンネル使用$ 1個のCPUに対して最大帯域幅の理論値は256Gbps,測定値は143.2Gbps$ 100Gbpsのフォワーディングには各ノードに200Gbps必要なので143.2Gbpsでは足りない$ メモリ帯域幅の向上手法としてノードの増加がある$ NUMAではリモートメモリへのアクセスが高価なので,データ配置に気をつける必要がある21
  22. 22. Ⅲ. Discussion andFuture Work22
  23. 23. Discussion and Future Work$ 現在の技術で100Gbpsルータの実現可能性について述べた$ 我々は現在のPCアーキテクチャにおける2つの主要なボトルネックを明らかにした$ CPUサイクル$ 最適化技術によりper-packet処理のオーバヘッドを削減し,FPGAやGPUにより計算サイクルを増幅する$ I/O帯域幅$ IOハブのチップセットとマルチIOハブの構成の改良,およびマルチCPUソケットに対するより大きなメモリバンド幅が,ボトルネックを軽減する23
  24. 24. $ p.3 By Googling, we find that ...24

×