Upgrade to Pro — share decks privately, control downloads, hide ads and more …

スマホアプリ「モンスターストライク」も支えるデータプレーン技術

Avatar for Junpei YOSHINO Junpei YOSHINO
September 10, 2018

 スマホアプリ「モンスターストライク」も支えるデータプレーン技術

ミクシィ社でデータプレーン開発をチームでやっていることを共有します。
自作の処理がどのようなレイテンシで処理がされるのかを測りました。

Avatar for Junpei YOSHINO

Junpei YOSHINO

September 10, 2018
Tweet

More Decks by Junpei YOSHINO

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 1 • 名前:吉野純平 • 2008年の新卒入社から10年半くらい働いています • 所属:開発本部 XFLAG事業推進室 インフラ開発G

    • 事業開発の部隊と共に戦う! • 物理インフラ周りのオペレーション • 開発、構築、運用などなど • パケット加工の処理
  2. 4 パケットの処理とは • ⼤きく分けて2種類 • データプレーン • 流れているパケットデータを触る部分の処理 • 今日の主題はこちら

    • コントロールプレーン • データプレーンでの処理の仕方を調整するための通信 • 例としてはBGPやIGPのルーティングプロトコル
  3. アドレスバッティングと回避策検討 8 緑の部分で アドレスバッティングがあった IBM ベアメタル IBM VM IBM ミクシィ

    IBM 共通基盤 オンプレ サーバ 他社 クラウド こっちに流れて欲しい こっちに⾏く
  4. 9 GREトンネルでの回避策 サーバ VM IBM 共通基盤 オンプレ サーバ 他社 クラウド

    ミクシィ サーバ ト ン ネ ル ト ン ネ ル ト ン ネ ル オンプレにサーバ数分の トンネルを作成して回避した
  5. GREトンネルのパケットフォーマット 10 実際に通信したい内容をGREで包む Ethernet IP (outer) GRE IP (inner) payload

    実際に通信したい内容 トンネルのためのヘッダー パケットの先頭から=>=>=>
  6. 開発 • DPDK • 弊社はgtestを使ってテストしています • テストでパケットを投入してどう変更されたかをチェック等 • FPGA Smart

    NIC • verilog使います • テストも書きます。どこのビットとクロックが。 • CDは? • ちゃんとグレースフルshutdownできるようにしてあります • かっこいいデプロイはもうちょっとやっていかないといけない
  7. 測定 13 • Latency • パケットをどのくらいの処理時間で処理できるか • Packet per Second

    • 1秒間に何パケット処理できるか • 10Gbpsならば14.88Mppsが目標 • 最小サイズの64byteで10Gbpsが流せる • (当然ですよねってところで今回はパス)
  8. レイテンシの測り⽅ 14 • 光ファイバを通る光を抜き出す • 時刻情報はArista Networks社の製品機能を使った • TAP aggregation機能

    • 誤差はnano secレベルになる。分析用のサーバ性能に非依存 試験対象 トラフィック 送信 トラフィック 受信 TAP aggregation 分析用サーバ
  9. CPU ASIC 実装したものと⽐較対象 15 • ⾃作 • DPDKを使ったもの • FPGA

    Smart NICを使ったもの • ⽐較対象 • ASICで処理されるネットワーク機器 NIC FPGA Smart NIC PCIe
  10. ⽐較結果 16 5回測定を回した平均値。⾚字の通常転送を基準とした時間を()に記載。 DPDK FPGA Smart NIC ASIC Latency 9.529usec

    (+7.435usec) 3.184usec (+1.090usec) 2.294usec (+0.200usec) Latency without GRE 9.456usec (+7.362usec) 3.010usec (+0.915usec) 2.094usec 実装期間 機能半日 +修正数日 実装5日 +事前学習 調整を加えて 3時間
  11. まとめ 18 • データプレーンは作れる • ASICには劣るが⼗分な性能である • ※メモリ参照が多かったりロックが必要な処理には弱い • 変更差分を⼊れた時等にレイテンシも⽐較できることは

    有意義である • こうすることでネットワークに多様性の注⼊ができる • ⾃作なのでトラフィック迂回設計の幅が広がる • この技術スタックで新しいものを実装をたくらみ中