Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
スマホアプリ「モンスターストライク」も支えるデータプレーン技術
Search
Junpei YOSHINO
September 10, 2018
Technology
1
980
スマホアプリ「モンスターストライク」も支えるデータプレーン技術
ミクシィ社でデータプレーン開発をチームでやっていることを共有します。
自作の処理がどのようなレイテンシで処理がされるのかを測りました。
Junpei YOSHINO
September 10, 2018
Tweet
Share
More Decks by Junpei YOSHINO
See All by Junpei YOSHINO
hbstudy76_yoshino
junpei_y
1
2.1k
ネットワーク運用におけるgithubの活用と今後の展望
junpei_y
2
490
Other Decks in Technology
See All in Technology
「ストレッチゾーンに挑戦し続ける」ことって難しくないですか? メンバーの持続的成長を支えるEMの環境設計
sansantech
PRO
3
660
マルチプレーンGPUネットワークを実現するシャッフルアーキテクチャの整理と考察
markunet
2
240
決済サービスを支えるElastic Cloud - Elastic Cloudの導入と推進、決済サービスのObservability
suzukij
2
610
JAWS DAYS 2026 ExaWizards_20260307
exawizards
0
420
生成AIの利用とセキュリティ /gen-ai-and-security
mizutani
1
1.6k
脳内メモリ、思ったより揮発性だった
koutorino
0
250
新職業『オーケストレーター』誕生 — エージェント10体を同時に回すAgentOps
gunta
4
1.8k
(Test) ai-meetup slide creation
oikon48
1
310
楽しく学ぼう!ネットワーク入門
shotashiratori
3
3k
AI実装による「レビューボトルネック」を解消する仕様駆動開発(SDD)/ ai-sdd-review-bottleneck
rakus_dev
0
110
JAWSDAYS2026_A-6_現場SEが語る 回せるセキュリティ運用~設計で可視化、AIで加速する「楽に回る」運用設計のコツ~
shoki_hata
0
3k
ナレッジワーク IT情報系キャリア研究セッション資料(情報処理学会 第88回全国大会 )
kworkdev
PRO
0
170
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
69
Designing for humans not robots
tammielis
254
26k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
140
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
310
Are puppies a ranking factor?
jonoalderson
1
3.1k
Faster Mobile Websites
deanohume
310
31k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
470
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
From π to Pie charts
rasagy
0
150
Darren the Foodie - Storyboard
khoart
PRO
3
2.8k
RailsConf 2023
tenderlove
30
1.4k
Transcript
モンストも⽀えるデータプレーン技術 2018/9/10 Junpei Yoshino 株式会社ミクシィ XFLAG STUDIO
⾃⼰紹介 1 • 名前:吉野純平 • 2008年の新卒入社から10年半くらい働いています • 所属:開発本部 XFLAG事業推進室 インフラ開発G
• 事業開発の部隊と共に戦う! • 物理インフラ周りのオペレーション • 開発、構築、運用などなど • パケット加工の処理
2 オペレーション x ネットワーク
3 オペレーションをする上で必要なこと • 1つの問題で全滅しないか • 1つの実装で動いていないか • 安全に迂回ができるか • ソフトウエア改修等で断なくできるか
• どんなときでもプランBがあるか
パケット処理を⾃作できると 5 • ⾃由度が格段にあがる • 世の中にないものもできるかも 高度な処理機能付き ネットワーク機器 変化 よくある
ネットワーク機器 自作処理
4 パケットの処理とは • ⼤きく分けて2種類 • データプレーン • 流れているパケットデータを触る部分の処理 • 今日の主題はこちら
• コントロールプレーン • データプレーンでの処理の仕方を調整するための通信 • 例としてはBGPやIGPのルーティングプロトコル
6 今回紹介する題材 GREのトンネルヘッダー外し
レイテンシを⼩さくしなければならない 7 • ボトルネックがレイテンシになることがある • アプリの作り次第で⼯夫することもできる • ⼩さなレイテンシ環境を⽤意できればシンプル • IBMのクラウドサービスはレイテンシが⼩さい
• しかし、工夫が必要 • スマホアプリ「モンスターストライク」にてIBMを利⽤
アドレスバッティングと回避策検討 8 緑の部分で アドレスバッティングがあった IBM ベアメタル IBM VM IBM ミクシィ
IBM 共通基盤 オンプレ サーバ 他社 クラウド こっちに流れて欲しい こっちに⾏く
9 GREトンネルでの回避策 サーバ VM IBM 共通基盤 オンプレ サーバ 他社 クラウド
ミクシィ サーバ ト ン ネ ル ト ン ネ ル ト ン ネ ル オンプレにサーバ数分の トンネルを作成して回避した
GREトンネルのパケットフォーマット 10 実際に通信したい内容をGREで包む Ethernet IP (outer) GRE IP (inner) payload
実際に通信したい内容 トンネルのためのヘッダー パケットの先頭から=>=>=>
11 ということで GREトンネル終端 を実装してみた 実装と測定
何をするか 12 GREのついたパケットが来る =>外すして転送する! Ethernet IP (outer) GRE IP (inner)
payload Ethernet IP (inner) payload
何をするか 12 GREのついたパケットが来る =>外すして転送する! Ethernet IP (outer) GRE IP (inner)
payload Ethernet IP (inner) payload
開発 • DPDK • 弊社はgtestを使ってテストしています • テストでパケットを投入してどう変更されたかをチェック等 • FPGA Smart
NIC • verilog使います • テストも書きます。どこのビットとクロックが。 • CDは? • ちゃんとグレースフルshutdownできるようにしてあります • かっこいいデプロイはもうちょっとやっていかないといけない
CD!!! • Graceful shutdownについて • ルーティング技術で迂回する ネットワーク機器 ネットワーク機器 開発物 ルーティングプロトコル
ネットワーク機器 ネットワーク機器 開発物
測定 13 • Latency • パケットをどのくらいの処理時間で処理できるか • Packet per Second
• 1秒間に何パケット処理できるか • 10Gbpsならば14.88Mppsが目標 • 最小サイズの64byteで10Gbpsが流せる • (当然ですよねってところで今回はパス)
レイテンシの測り⽅ 14 • 光ファイバを通る光を抜き出す • 時刻情報はArista Networks社の製品機能を使った • TAP aggregation機能
• 誤差はnano secレベルになる。分析用のサーバ性能に非依存 試験対象 トラフィック 送信 トラフィック 受信 TAP aggregation 分析用サーバ
CPU ASIC 実装したものと⽐較対象 15 • ⾃作 • DPDKを使ったもの • FPGA
Smart NICを使ったもの • ⽐較対象 • ASICで処理されるネットワーク機器 NIC FPGA Smart NIC PCIe
⽐較結果 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時間
まとめ 18 • データプレーンは作れる • ASICには劣るが⼗分な性能である • ※メモリ参照が多かったりロックが必要な処理には弱い • 変更差分を⼊れた時等にレイテンシも⽐較できることは
有意義である • こうすることでネットワークに多様性の注⼊ができる • ⾃作なのでトラフィック迂回設計の幅が広がる • この技術スタックで新しいものを実装をたくらみ中
None