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
970
スマホアプリ「モンスターストライク」も支えるデータプレーン技術
ミクシィ社でデータプレーン開発をチームでやっていることを共有します。
自作の処理がどのようなレイテンシで処理がされるのかを測りました。
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
AWS re:Invent 2025事前勉強会資料 / AWS re:Invent 2025 pre study meetup
kinunori
0
930
アウトプットから始めるOSSコントリビューション 〜eslint-plugin-vueの場合〜 #vuefes
bengo4com
3
1.9k
累計5000万DLサービスの裏側 – LINEマンガのKotlinで挑む大規模 Server-side ETLの最適化
ldf_tech
0
100
東京大学「Agile-X」のFPGA AIデザインハッカソンを制したソニーのAI最適化
sony
0
180
オブザーバビリティと育てた ID管理・認証認可基盤の歩み / The Journey of an ID Management, Authentication, and Authorization Platform Nurtured with Observability
kaminashi
2
1.5k
プロファイルとAIエージェントによる効率的なデバッグ / Effective debugging with profiler and AI assistant
ymotongpoo
1
630
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
270
データとAIで明らかになる、私たちの課題 ~Snowflake MCP,Salesforce MCPに触れて~ / Data and AI Insights
kaonavi
0
210
現場の壁を乗り越えて、 「計装注入」が拓く オブザーバビリティ / Beyond the Field Barriers: Instrumentation Injection and the Future of Observability
aoto
PRO
1
750
20251029_Cursor Meetup Tokyo #02_MK_「あなたのAI、私のシェル」 - プロンプトインジェクションによるエージェントのハイジャック
mk0721
PRO
6
2.2k
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
350
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
190
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
650
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
900
BBQ
matthewcrist
89
9.9k
Keith and Marios Guide to Fast Websites
keithpitt
412
23k
Context Engineering - Making Every Token Count
addyosmani
8
320
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Faster Mobile Websites
deanohume
310
31k
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