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
210
TapAggregationを使ったデータプレーン性能測定
Mabuchin
October 01, 2018
Tweet
Share
More Decks by Mabuchin
See All by Mabuchin
TIPSTARのライブ・プロダクションシステムの裏側
mabuchin
1
1.2k
ホワイトボックス伝送の動向と商用利用について
mabuchin
3
690
WhiteBoxSwitch NOSの変遷
mabuchin
5
1.9k
Cassini + Goldstone DCI use case and challenges
mabuchin
1
200
転びながらもネットワーク処理をソフトウェアで自作していく話
mabuchin
8
4.3k
モダンなネットワーク構成管理DBを最小労力で開発する
mabuchin
3
800
Gitでネットワークオペレーションを進める話
mabuchin
0
110
Github PullRequestで作業半自動化
mabuchin
0
77
お手軽! BGP RIBのリアルタイム経路解析+可視化
mabuchin
0
330
Other Decks in Technology
See All in Technology
【詳説】コンテンツ配信 システムの複数機能 基盤への拡張
hatena
0
230
AI Agent時代なのでAWSのLLMs.txtが欲しい!
watany
2
220
AIエージェント元年
shukob
0
150
クラウド食堂とは?
hiyanger
0
110
Amazon Aurora のバージョンアップ手法について
smt7174
2
140
スキルだけでは満たせない、 “組織全体に”なじむオンボーディング/Onboarding that fits “throughout the organization” and cannot be satisfied by skills alone
bitkey
0
170
4th place solution Eedi - Mining Misconceptions in Mathematics
rist
0
140
Oracle Database Technology Night #87-1 : Exadata Database Service on Exascale Infrastructure(ExaDB-XS)サービス詳細
oracle4engineer
PRO
1
160
LINEギフトにおけるバックエンド開発
lycorptech_jp
PRO
0
250
Share my, our lessons from the road to re:Invent
naospon
0
140
あなたが人生で成功するための5つの普遍的法則 #jawsug #jawsdays2025 / 20250301 HEROZ
yoshidashingo
2
270
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
340
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
74
9.2k
A better future with KSS
kneath
238
17k
The Invisible Side of Design
smashingmag
299
50k
GraphQLとの向き合い方2022年版
quramy
44
14k
Speed Design
sergeychernyshev
27
810
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Docker and Python
trallard
44
3.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Code Review Best Practice
trishagee
67
18k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Producing Creativity
orderedlist
PRO
344
40k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
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