Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
TapAggregationを使ったデータプレーン性能測定
Mabuchin
October 01, 2018
Technology
0
93
TapAggregationを使ったデータプレーン性能測定
Mabuchin
October 01, 2018
Tweet
Share
More Decks by Mabuchin
See All by Mabuchin
TIPSTARのライブ・プロダクションシステムの裏側
mabuchin
1
1.1k
ホワイトボックス伝送の動向と商用利用について
mabuchin
3
390
WhiteBoxSwitch NOSの変遷
mabuchin
4
1.3k
Cassini + Goldstone DCI use case and challenges
mabuchin
1
22
転びながらもネットワーク処理をソフトウェアで自作していく話
mabuchin
8
3.2k
モダンなネットワーク構成管理DBを最小労力で開発する
mabuchin
3
410
Gitでネットワークオペレーションを進める話
mabuchin
0
66
Github PullRequestで作業半自動化
mabuchin
0
24
お手軽! BGP RIBのリアルタイム経路解析+可視化
mabuchin
0
130
Other Decks in Technology
See All in Technology
What's Data Lake ? Azure Data Lake best practice
ryomaru0825
2
740
Scrum Fest Osaka 2022 フルリモート下でのチームビルディング
moritamasami
2
1.1k
LINEのB2Bプラットフォームにおけるトラブルシューティング2選
line_developers
PRO
3
290
機械学習システムアーキテクチャ入門 #1
asei
3
1.2k
アーキテクチャを明文化して開発に臨んだ話
akihiyo76
0
270
インフラのCI/CDはGitHub Actionsに任せた
mihyon
0
110
スクラムのスケールとチームトポロジー / Scaled Scrum and Team Topologies
daiksy
1
430
History of the ML system in KARTE
kargo113
0
620
モブに早く慣れたい人のためのガイド / A Guide to Getting Started Quickly with Mob Programming
cybozuinsideout
PRO
2
1.7k
miisan's career talk
mii3king
0
220
JAWS-UG re:Habilitaion 報告 / JAWS-UG OITA rehabilitation
hiranofumio
0
120
サイボウズの アジャイル・クオリティ / Agile Quality at Cybozu
cybozuinsideout
PRO
4
2.2k
Featured
See All Featured
The Mythical Team-Month
searls
209
39k
jQuery: Nuts, Bolts and Bling
dougneiner
56
6.4k
In The Pink: A Labor of Love
frogandcode
131
21k
What's new in Ruby 2.0
geeforr
336
30k
From Idea to $5000 a Month in 5 Months
shpigford
373
44k
Side Projects
sachag
450
37k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
Building an army of robots
kneath
299
40k
Statistics for Hackers
jakevdp
781
210k
Faster Mobile Websites
deanohume
294
28k
Bash Introduction
62gerente
597
210k
The Cult of Friendly URLs
andyhume
68
4.8k
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