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
TapAggregationを使ったデータプレーン性能測定
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Mabuchin
October 01, 2018
Technology
280
0
Share
TapAggregationを使ったデータプレーン性能測定
Mabuchin
October 01, 2018
More Decks by Mabuchin
See All by Mabuchin
TIPSTARのライブ・プロダクションシステムの裏側
mabuchin
1
1.3k
ホワイトボックス伝送の動向と商用利用について
mabuchin
3
840
WhiteBoxSwitch NOSの変遷
mabuchin
5
2.1k
Cassini + Goldstone DCI use case and challenges
mabuchin
1
290
転びながらもネットワーク処理をソフトウェアで自作していく話
mabuchin
8
4.8k
モダンなネットワーク構成管理DBを最小労力で開発する
mabuchin
3
960
Gitでネットワークオペレーションを進める話
mabuchin
0
150
Github PullRequestで作業半自動化
mabuchin
0
120
お手軽! BGP RIBのリアルタイム経路解析+可視化
mabuchin
0
430
Other Decks in Technology
See All in Technology
"まず試す"ためのDatabricks Apps活用法 / Databricks Apps for Early Experiments and Validation
nttcom
1
170
【PHPカンファレンス小田原2026】Webアプリケーションエンジニアにも知ってほしい オブザーバビリティ の本質
fendo181
0
200
Babylon.js Japan Activities (2026/4)
limes2018
0
180
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.4k
今年60歳のおっさんCBになる
kentapapa
1
170
「決め方」の渡し方 / How to hand over the "decision-making process"
pauli
7
1.2k
スケーリングを封じられたEC2を救いたい
senseofunity129
0
140
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
230
第26回FA設備技術勉強会 - Claude/Claude_codeでデータ分析 -
happysamurai294
0
390
AIにより大幅に強化された AWS Transform Customを触ってみる
0air
0
310
遊びで始めたNew Relic MCP、気づいたらChatOpsなオブザーバビリティボットができてました/From New Relic MCP to a ChatOps Observability Bot
aeonpeople
1
170
すごいぞManaged Kubernetes
harukasakihara
1
330
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
170
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
470
From π to Pie charts
rasagy
0
160
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
150
A designer walks into a library…
pauljervisheath
211
24k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
140
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Code Review Best Practice
trishagee
74
20k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Optimizing for Happiness
mojombo
378
71k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
110
Transcript
TapAggregationを⽤いた レイテンシ測定 2018.12.06 Toshiya Mabuchi 株式会社ミクシィ XFLAG スタジオ
About • ⾺淵俊弥 / Toshiya Mabuchi • 開発本部 XFLAG事業推進室 インフラ開発グループ
• 主にやっていること • AS38651ネットワークまわりの運⽤ • DPDK/XDP等のパケット⾼速処理技術を⽤いたネットワーク基盤開発 • ネットワーク運⽤⾃動化(⾼度化)に向けたコード整備 • ネットワーク制御のためのAPI/コントロールプレーンの開発
ネットワーク開発? • ユーザがプログラマブルかつ⾼速にパケット処理できる技術の確⽴ (DPDK/XDP/Netmap/FD.io/P4/SmartNIC/ etc...) • Linuxユーザランドで動作させるようなものでも、40Mppsくらい余裕で出る • 一般的なサーバーを使い、自社に適したネットワーク処理を追加することができる •
ネットワークの自由度の大幅な向上が見込める • P4/SmartNICの利用により、ASICとほぼ同等の処理性能を得られるケースも • レイテンシやパケロスロス等、性能⾯のテストを⾃分達で検査する必要 • 保守も当然自分たちなので、保守できる範囲も考えなければならない →まずは自社特有の事情にマッチする点にに利用していくパターンが多い
データプレーン開発する際に考慮する点 • パケット加⼯処理が、どの程度オーバーヘッドを⽣んでいるか ≒ レイテンシにどの程度影響を与えるのか • オーバーヘッドとなる要因は様々 • パケット加工時のアルゴリズム(特にInner周りの処理) •
各プロトコルChecksum等の計算方法(Offload/自力) • メモリの取扱い • NIC性能 • CPU性能 などなど.... 「処理による遅延」を「可能な限り正確に」測定し、 許容できないオーバーヘッドを生んでいないか確かめることが重要
GRE Decap機能の開発時における 性能の測定例
Gre Decapについて • こんな感じでGREを単純にDecapする機能を実装 • ASIC/FPGA/DPDKの3種類を実装し比較 スマホアプリ「モンスト」も支えるデータプレーン技術 hJps://speakerdeck.com/junpei_y/sumahoapuri-monsutasutoraiku-mozhi-erudetapurenji-shu
性能をどう計測するか • 帯域性能検査 • T-REX • DPDKベースのOSSトラフィックジェネレータ • 対象を挟んだLoopBack的な試験で送信/受信パケットの総数や帯域の検査が可能 •
Python API / GUIどちらもそこそこ使える • パフォーマンステストをコードベースで記述し何度もデータを簡単に取れる • Scapyベースでパケットを生成して送付できるのでコードも簡単 • 遅延性能検査 • Tap Aggregation • Nano secレベルでレイテンシの計測が可能 • テストする実パケット自体には手を加えずに計測が可能
Tap Aggregation
Tap Aggregation? • ⽂字通り、TapをAggregationするArista独⾃機能 • Tap⾃体するわけではなく、あくまでTapしたパケットをまとめ、 解析するサーバー等にL1的に纏めて渡すことができる。 • 解析サーバーが少なく済み、サーバー性能に依存せずに、 簡単なパケット処理やフィルタを⾏った上で解析が可能
Router Switch Router Switch Arista 7280/7130/5104 Analyze Server tap Tap interface Tool interface
• オプション機能がいくつかある • Timestamp機能 ASIC ClockをもとにしたIEEE1588(PTP) ToD形式のタイムスタンプを埋め込む機能 • Replace Souce
Mac: Souce Mac Addressを48bitのTimestampに上書きする パーサを書かなくていいので、取扱いが楽 • Extend L2 Header : Etherヘッダに拡張で独自のヘッダーを挿入する • Filtering機能 • ACLと同じ感覚で、特定条件に沿ったパケットのみ解析するサーバーに送付可能 (e.g. TCP dst port 80のみ解析サーバへ送る) Tap Aggregationオプション機能
Tap Aggregation Timestamp • 今回はSource Mac addressを書き換える⽅法を採⽤ • 追加でパケットのパーサを書く必要がない •
Source Mac addressの情報は解析時には不要なので問題無し • 48bit IEEE1588 ToD Formatで、秒数変換も難しくない 16bit 32bit 48bit Second nano second (/30nano sec) ※MSB 2bitは0固定なので実質30bit
計測結果
計測結果 スマホアプリ「モンスト」も支えるデータプレーン技術 hJps://speakerdeck.com/junpei_y/sumahoapuri-monsutasutoraiku-mozhi-erudetapurenji-shu
まとめ • データプレーン開発 • すでに十分適用可能なレベルに開発が進んできている • SmartNIC/DPDKともにASIC性能には及ばないが、十分な性能 • 処理のオーバーヘッドにはそれなりに気を使っている •
開発サポートのツールとしてのTap Aggregation • nsecレベルで正確にレイテンシ計測が可能 • 開発時の指標として正確に遅延計測 • 解析するためのサーバーは1台でオッケー • SrcMacに埋め込む形式なら解析の手間もかからない
最後に... トラブルシュート利⽤への展望 • Tap Aggregationのフィルタリング機能 • 網内パケットのトラブルシュートに非常に有効 • PolicyベースでTAPパケットをフィルタリング -
ICMP ErrorやTCP RetransmitのみTap Aggregationで解析 問題が発生している箇所をDestination IPで可視化することで、 現状況と原因を、素早く的確な箇所で切り分けが可能 こんなイメージ ・・・というアイディア
None