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
Mabuchin
October 01, 2018
Technology
0
250
TapAggregationを使ったデータプレーン性能測定
Mabuchin
October 01, 2018
Tweet
Share
More Decks by Mabuchin
See All by Mabuchin
TIPSTARのライブ・プロダクションシステムの裏側
mabuchin
1
1.3k
ホワイトボックス伝送の動向と商用利用について
mabuchin
3
790
WhiteBoxSwitch NOSの変遷
mabuchin
5
2k
Cassini + Goldstone DCI use case and challenges
mabuchin
1
260
転びながらもネットワーク処理をソフトウェアで自作していく話
mabuchin
8
4.6k
モダンなネットワーク構成管理DBを最小労力で開発する
mabuchin
3
900
Gitでネットワークオペレーションを進める話
mabuchin
0
130
Github PullRequestで作業半自動化
mabuchin
0
100
お手軽! BGP RIBのリアルタイム経路解析+可視化
mabuchin
0
400
Other Decks in Technology
See All in Technology
20251102 WordCamp Kansai 2025
chiilog
1
750
龍昌餃子で理解するWebサーバーの並行処理モデル - 東葛.dev #9
kozy4324
1
140
AIエージェントを導入する [ 社内ナレッジ活用編 ] / Implement AI agents
glidenote
1
320
内部品質・フロー効率・コミュニケーションコストを悪化させ現場を苦しめかねない16の組織設計アンチパターン[超簡易版] / 16 Organization Design Anti-Patterns for Software Development
mtx2s
2
130
次世代のメールプロトコルの斜め読み
hirachan
3
440
Databricks Free Editionで始めるMLflow
taka_aki
0
850
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
3
310
技術の総合格闘技!?AIインフラの現在と未来。
ebiken
PRO
0
210
プロダクトエンジニアとしてのマインドセットの育み方 / How to improve product engineer mindset
saka2jp
2
200
GTC 2025 : 가속되고 있는 미래
inureyes
PRO
0
160
從裝潢設計圖到 Home Assistant:打造智慧家庭的實戰與踩坑筆記
kewang
0
150
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
570
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Scaling GitHub
holman
463
140k
Facilitating Awesome Meetings
lara
57
6.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
Fireside Chat
paigeccino
41
3.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
660
Building an army of robots
kneath
306
46k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Practical Orchestrator
shlominoach
190
11k
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