• Save
100Gbpsソフトウェアルータの実現可能性に関する論文
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 1,634 views

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

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

Statistics

Views

Total Views
1,634
Views on SlideShare
1,622
Embed Views
12

Actions

Likes
2
Downloads
0
Comments
0

2 Embeds 12

https://twitter.com 11
http://mym.corp.yahoo.co.jp 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • 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
    • 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
    • Ⅰ. Introduction3
    • Introduction$ ソフトウェアルータは柔軟なパケット処理のための魅力的なプラットフォームである$ 初期のルータは汎用コンピュータで構築されていた$ 90年代後半から10Gbpsの高品質ルータや特殊なハードウェアが台頭$ 最近のPCハードウェアを用いたソフトウェアルータがコストパフォーマンスの面で競争$ マルチコアCPU,高帯域幅NIC,高速なCPU-メモリ間のインターコネクトおよびシステムバスなど$ RouteBricksのような実験的なソフトウェアルータ(8.33 Gbps)4
    • Introduction$ 現在もしくは予測可能な未来の技術でSingle Boxソフトウェアルータの性能をどれくらいだせるのか?$ 予測されるハードルをまとめ,単一のx86マシンで100Gbpsのスループットを達成する計画をたてた5
    • Ⅱ. Opportunities andChallenges6
    • 高性能ハードウェアアーキテクチャ$ 近年のIntelとAMDのアーキテクチャ改良$ マルチコア・プロセッサ$ 各コアに対して平等に大きなメモリ帯域幅を提供するCPUに統合されたメモリコントローラ$ 10 Gbps NICのような周辺機器に高速に接続するPCIExpress$ Intel QuickPath Interconnect(QPI)やAMDHyperTransportのようなpoint to pointインターコネクトにより互いに接続されたマルチCPUソケット$ これらのリソースを効果的に活用する高性能ソフトウェアルータを構築する となる7
    • ルータのハードウェア構成例$ NUMA: CPUごとにローカルなメモリをもつアーキテクチャ$ IOH(I/Oハブ): NICやストレージとの接続2 NUMA nodes10Gx68
    • パフォーマンスボトルネック$ 前述のルータアーキテクチャにおけるパフォーマンスボトルネックを考察する$ 以下の観点からボトルネックを考察$ CPU サイクル$ I/O 帯域幅$ メモリ帯域幅9
    • CPUサイクル$ モダンなNICは,各CPUコアに対して独立したパケットキューをもつため,CPUコア数に対してスケールする$ しかし,小さなパケットではパケットフォワーディングのようなper-packet処理が支配的となる$ 10Gbps環境では,マルチコアCPUでさえ,per-packet処理のコストは深刻である10
    • 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
    • CPUサイクル$ per-packet処理のオーバヘッドを改善できるか?$ さらなる性能向上のために以下を提案$ パケットバッファの動的確保をやめて,固定バッファを使う$ 強制的なキャッシュミスを防ぐために,パケットデータをディスクリプタごしにprefetch (?)$ cache bouncingを最小化して,CPUコア間の誤ったキャッシュの共有を削減 [6]$ これらの最適化によりper-packet処理のオーバヘッドを1/6まで削減 [4]$ 必要なCPUサイクル数が 277GHz ➔ 30GHzとなり,現在のCPUでも達成可能$ パケットI/O以外の処理はFPGAやGPUにオフロード12
    • I/O帯域幅$ NICから受信したパケットはPCIeリンク,IOHs,QPIリンク,最終的にメモリバスを通る$ そのあと,CPUがメモリアクセスによりパケットを処理し,逆順にパケットを送信する$ NIC CPUのパケットデータパスにおけるボトルネックを調査13
    • 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
    • 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
    • I/O帯域幅 - 計測手法$ 8つの2ポートNICのうち,半分をパケットジェネレータに使い,半分を評価に使う$ 評価のために2つのシステムを使う$ 2個のCPUソケットと2個のIOHをもつサーバ$ 1個のCPUソケットと1個のIOHをもつデスクトップ$ デスクトップは3個のPCIeスロットをもち,2つはNIC,もう1つはグラフィックカード$ I/O帯域幅を正確に測定し,ボトルネックを明らかにするために3種類の構成で実験する16
    • I/O帯域幅 - 計測手法(構成1)送信スループットは50Gbpsで抑えられる受信スループットは30Gbpsフォワーディングは20Gbps17
    • I/O帯域幅 - 計測手法(構成2)送信スループットは80Gbps(理論最大値)受信/フォワーディングは60/40Gbps.構成1の2倍2CPUソケット/2IOH構成では100Gbpsは達成できないnode-crossingでもかわらないので,QPIリンクがボトルネックではない18
    • I/O帯域幅 - 計測手法(構成3)送受信ともにスループットは2個のNICでの最大スループットである40Gbps送信と受信のスループット差の原因は何か?構成1,2での受信スループットの低下は,2個のCPUソケットよりも2個のIOHが原因フォワーディング性能が送信/受信性能より低いメモリボトルネックにより制限されている(次ページ)19
    • メモリ帯域幅$ フォワーディングは様々なメモリアクセスを伴う$ 100Gbpsトラフィックをフォワーディングするためのメモリ帯域幅は少なくとも400Gbps必要$ NICとメモリ間の100Gbps転送$ メモリとCPU間の100Gbps転送$ 送信と受信で双方向必要なので2倍$ 各パケットごとに16バイトのread/writeメモリアクセスが発生$ さらにパケット長に依存してメモリバスに負荷がかかる400 Gbps20
    • メモリ帯域幅$ p20で送信/受信性能よりもフォワーディング性能が低い理由はメモリ帯域幅が不足しているため$ フォワーディングに要するCPU利用率は100%である$ より大きなメモリ帯域幅を得るために,メモリオーバクロックするとフォワーディング性能が送信/受信性能に近くなった$ 実験ではDDR3 1,333MHzのトリプルチャンネル使用$ 1個のCPUに対して最大帯域幅の理論値は256Gbps,測定値は143.2Gbps$ 100Gbpsのフォワーディングには各ノードに200Gbps必要なので143.2Gbpsでは足りない$ メモリ帯域幅の向上手法としてノードの増加がある$ NUMAではリモートメモリへのアクセスが高価なので,データ配置に気をつける必要がある21
    • Ⅲ. Discussion andFuture Work22
    • Discussion and Future Work$ 現在の技術で100Gbpsルータの実現可能性について述べた$ 我々は現在のPCアーキテクチャにおける2つの主要なボトルネックを明らかにした$ CPUサイクル$ 最適化技術によりper-packet処理のオーバヘッドを削減し,FPGAやGPUにより計算サイクルを増幅する$ I/O帯域幅$ IOハブのチップセットとマルチIOハブの構成の改良,およびマルチCPUソケットに対するより大きなメモリバンド幅が,ボトルネックを軽減する23
    • $ p.3 By Googling, we find that ...24