Submit Search
DPDKを用いたネットワークスタック,高性能通信基盤開発
8 likes
3,903 views
slankdev
サイボウズ・ラボユース成果報告会の発表資料
Internet
Read more
1 of 16
Download now
Downloaded 18 times
1
2
Most read
3
4
5
6
7
8
Most read
9
10
11
12
Most read
13
14
15
16
More Related Content
PDF
BGP Unnumbered で遊んでみた
akira6592
PDF
Paxos
Preferred Networks
PDF
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
PPTX
OVN 設定サンプル | OVN config example 2015/12/27
Kentaro Ebisawa
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
PDF
NETCONFとYANGの話
Masakazu Asama
PDF
大規模DCのネットワークデザイン
Masayuki Kobayashi
BGP Unnumbered で遊んでみた
akira6592
Paxos
Preferred Networks
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
OVN 設定サンプル | OVN config example 2015/12/27
Kentaro Ebisawa
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
NETCONFとYANGの話
Masakazu Asama
大規模DCのネットワークデザイン
Masayuki Kobayashi
What's hot
(20)
PDF
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
PDF
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
PDF
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
Tomohiro Nakashima
PDF
TIME_WAITに関する話
Takanori Sejima
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
PDF
インターネットの仕組みとISPの構造
Taiji Tsuchiya
PDF
"SRv6の現状と展望" ENOG53@上越
Kentaro Ebisawa
PDF
本当は楽しいインターネット
Yuya Rin
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
PDF
ネットワークでなぜ遅延が生じるのか
Jun Kato
PDF
AS45679 on FreeBSD
Tomocha Potter
PPTX
本当は恐ろしい分散システムの話
Kumazaki Hiroki
PDF
Onieで遊んでみようとした話
Masaru Oki
PDF
CDNの仕組み(JANOG36)
J-Stream Inc.
PDF
Linux女子部 systemd徹底入門
Etsuji Nakai
PDF
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
PPTX
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
NTT DATA Technology & Innovation
PPTX
分散システムについて語らせてくれ
Kumazaki Hiroki
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
脆弱性ハンドリングと耐える設計 -Vulnerability Response-
Tomohiro Nakashima
TIME_WAITに関する話
Takanori Sejima
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
インターネットの仕組みとISPの構造
Taiji Tsuchiya
"SRv6の現状と展望" ENOG53@上越
Kentaro Ebisawa
本当は楽しいインターネット
Yuya Rin
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
ネットワークでなぜ遅延が生じるのか
Jun Kato
AS45679 on FreeBSD
Tomocha Potter
本当は恐ろしい分散システムの話
Kumazaki Hiroki
Onieで遊んでみようとした話
Masaru Oki
CDNの仕組み(JANOG36)
J-Stream Inc.
Linux女子部 systemd徹底入門
Etsuji Nakai
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
NTT DATA Technology & Innovation
分散システムについて語らせてくれ
Kumazaki Hiroki
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
Ad
Similar to DPDKを用いたネットワークスタック,高性能通信基盤開発
(7)
PDF
High Performance Networking with DPDK & Multi/Many Core
slankdev
PPTX
サイボウズ・ラボユース中間報告会
slankdev
PDF
DPDK QoS
Masaru Oki
PDF
Xeon dとlagopusと、pktgen dpdk
Masaru Oki
PDF
自宅実験環境 Aug 2014
Masaru Oki
PDF
OSC2017Hokkaido
slankdev
PDF
Ethernetの受信処理
Takuya ASADA
High Performance Networking with DPDK & Multi/Many Core
slankdev
サイボウズ・ラボユース中間報告会
slankdev
DPDK QoS
Masaru Oki
Xeon dとlagopusと、pktgen dpdk
Masaru Oki
自宅実験環境 Aug 2014
Masaru Oki
OSC2017Hokkaido
slankdev
Ethernetの受信処理
Takuya ASADA
Ad
More from slankdev
(12)
PDF
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
slankdev
PDF
Kernel vm13lt
slankdev
PDF
Offloading BPF Implementation to FPGA-NIC したいねって話
slankdev
PDF
Seccamp 2016 チューター成果報告
slankdev
PDF
OSC 2016 Hokkaido セミナー資料
slankdev
PDF
サイボウズ・ラボユース成果報告会
slankdev
PPTX
Seurity Camp Award 2016
slankdev
PDF
OSC2016 Tokyo/Spring LT
slankdev
PDF
OSC2016 Tokyo/Spring セミナー資料
slankdev
PDF
LibPGEN 1st Step Guide
slankdev
PDF
libpgenでパケット操作
slankdev
PPTX
ARPSpoofing攻撃によるMITM攻撃
slankdev
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
slankdev
Kernel vm13lt
slankdev
Offloading BPF Implementation to FPGA-NIC したいねって話
slankdev
Seccamp 2016 チューター成果報告
slankdev
OSC 2016 Hokkaido セミナー資料
slankdev
サイボウズ・ラボユース成果報告会
slankdev
Seurity Camp Award 2016
slankdev
OSC2016 Tokyo/Spring LT
slankdev
OSC2016 Tokyo/Spring セミナー資料
slankdev
LibPGEN 1st Step Guide
slankdev
libpgenでパケット操作
slankdev
ARPSpoofing攻撃によるMITM攻撃
slankdev
DPDKを用いたネットワークスタック,高性能通信基盤開発
1.
DPDKを用いた ネットワークスタック, 高性能通信基盤 サイボウズ・ラボユース成果報告 Hiroki SHIROKURA @slankdev slank.dev@gmail.com
2.
自己紹介 Hiroki SHIROKURA - @slankdev -
Security Camp 15,16tutor - 15年間 テニスプレーヤー (卒業) - 2年間 パケリスト (卒業) - 高速パケット仙道にすすむ (修行中) 開発物 - パケット解析ライブラリ - Wireshark TUI版 のようなもの - DPDKを用いたネットワークスタック - DPDKを用いた高性能通信基盤(開発中) ラボユース - C++ソフトウェア開発 - テーマ : 高性能通信, C++11 - メンター: 光成滋生氏
3.
活動の流れ2016年度 4, 5月 - DPDKの入門 -
使い方理解やドキュメント読経 6,7月 - ネットワークスタック開発のための 勉強開始 - BSD, Linuxの実装を見る - C++に苦しみ、できないと 光成さんに泣きつく - ネットワークスタック開発開始 8月 セキュキャンチューター , インターン 9,10,11,12月 - ARPの実装 - IP, ICMPの実装 - UDPの実装 - TCPの実装 - ここで一応目標達成 - 高性能通信勉強開始 (次の目標) 1, 2, 3月 - DPDKで高性能通信をするための勉強 - こまごましたものを実装しまくる - 高速PCルーターなフレンズにスパイ活動
4.
活動の流れ2016年度 4, 5月 - DPDKの入門 -
使い方理解やドキュメント読経 6,7月 - NW-Stack開発のための勉強開始 - BSD, Linuxの実装を見る - C++に苦しみ、できないと 光成さんに泣きつく - ネットワークスタック開発開始 8月 セキュキャンチューター , インターン 9,10,11,12月 - ARPの実装 - IP, ICMPの実装 - UDPの実装 - TCPの実装 - ここで一応目標達成 - 高性能通信勉強開始 (次の目標) 1, 2, 3月 - 真のDPDKの使い方勉強 - こまごましたものを実装しまくる - 高速PCルーターなフレンズにスパイ活動 要約: ネットワークスタック実装のための勉強 ネットワークスタック設計 ネットワークスタック実装 高性能通信の勉強 高性能通信の実験 高性能通信の実験を行うためのフレームワークを設計/開発 その他ツールをすこし開発
5.
DPDKとは カーネルをバイパスしてユーザランドから直接デバ イスアクセスを行い高性能通信することを可能にし たフレームワーク コンテキストスイッチを抑制して、各 CPUでスレッド 固定をさせる NICはビジーウェイトのpollingで監視してCPU使用 率は100%に張り付く 引用: http://www.accton.com/Newspage.asp?sno=87
6.
ラボユース長期目標 理想と現実 目標: 高性能なネットワークスタック DPDKをバックエンド BSDの伝統的な実装を参考 機能目標 -
Ether,ARP,IP,ICMP,UDP,TCP 性能目標 - Linuxより高性能 (高性能 ≡ 低遅延, 高スループット) 具体的にはどんな機能があったりするか - Fragmentation - Sliding Window - 3 Way Handshake - Retransmission - Reply Ack - Reorder - etc...
7.
IP ラボユース長期目標 理想と現実 結果: Smallなネットワークスタック -
http://github.com/slankdev/stcp - 実装した: Ether,ARP,IP,UDP,ICMP,TCP - BSDとはだいぶ設計思想が違う - マルチコアをほとんどつかってない - DPDKのAPIと手実装がごちゃ混ぜ - TCPの完成度以外は文句はなし ifnet ifnet ifnet dataplane Ethernet ARP TCP UDPICMP TCPsock TCPsock TCPsock UDPsock UDPsock UDPsock UDPsock UDPsock UDPsock TCPsock TCPsock TCPsock APIs CPU0 CPU1 APP1 CPU2 APP2 NIC NIC NIC NIC NIC 青: STCP 灰: HW
8.
DUTTESTER ネットワークスタック開発 レイテンシ計測: 構成 計測ツール: Ping/Hping3
(高機能なping) マシンスペック - TESTER - CPU : Core i7 2700K @3.5GHz 8Core - NIC : Intel X540-T2 10GbE - OS : Ubuntu 16.04 LTS - DPDK: Version 16.07 LTS - NetworkStack: STCP (1coreのみ使用) - DUT - CPU : Core i7 3930K @3.2GHz 12Core - NIC : Intel X540-T2 10GbE - OS : Ubuntu 16.04LTS - NetworkStack: Linux 4.8.0-36-generic 10GNIC10GNIC 比較対象 - Linuxカーネルのnative NW Stack - STCP (自作のNW Stack)
9.
ネットワークスタック開発 レイテンシ計測: 結果 Linux 0.10
ms STCP 0.05 ms 表. Pingレイテンシ まあとりあえず, 2倍, Linuxより速いね, やったぜ ランバ・ラル 「見事だな.しかし小僧,自分の力で勝ったのではないぞ . そのDPDKの性能のおかげだという事を忘れるな .」
10.
次は... 現状DPDKの性能は10%くらいしか引き出せていない 限界までDPDKを使うとどれくらい高性能通信できるのか DPDKアプリケーション設計のベストプラクティス プロ「完全にDPDKを使いこなすには、人間様によるチューニングが必要」 次のテーマ: 以下を達成する高性能通信基盤開発 - SWの高性能通信の限界を探す -
自動チューニング機構 (人間様に頼らない)
11.
高性能通信基盤開発 現状行ったこと 1. 理解不足な部分の勉強,実験など - ハードウェア支援機構の理解の試験 -
スレッドパターンの試験 2. フレームワークの開発 - ハードウェア支援機構の設定を簡単にする - スレッド操作をしやすいようなフロントエンド
12.
高性能通信基盤開発: ハードウェア支援機構 RSS (Receive
Side Scaling) MEM CPU NIC NICが受け取ったパケットを HWで複数のCPUに振り分 けるためハードウェア支援機構 NICにQueueを持たせ、それぞれ別のメモリに DMAす る、それらを別々のコアから監視して、スケールアウトさ せる Flowは4tuple (Srcip,Dstip,Srcport,Dstport) 使い方がよく分からなかったが 今週やっと方法がわかった。 パフォーマンス計測はまだ Rx Que Rx Que Tx Que Hash func CoreCore CoreCore Rx Thread Rx Thread Tx Thread Thread Phy Dscrptr Indirection Table Dscrptr Dscrptr
13.
高性能通信基盤開発 スレッドパターンの最適化: Forwarderの場合 NIC0 Rx NIC1
Rx Rx Thrd NIC0 Tx NIC1 Tx Tx Thrd Wk Thrd NIC0 Rx NIC0 Tx Port0 Thrd NIC1 Rx NIC1 Tx Port1 Thrd Wk Thrd TxRx独立パターン Rx 監視スレッド/Tx 監視スレッド パケット処理を行うスレッド ポート独立パターン Port0 監視スレッド/Port1 監視スレッド パケット処理を行うスレッド ポートTxRx独立パターン Port0 Rx 監視スレッド/Port0 Tx 監視スレッド Port1 Rx 監視スレッド/Port1 Tx 監視スレッド パケット処理を行うスレッド フロー独立パターン Flowスレッド 0→1 Flowスレッド 1→0 フローTxRx独立パターン Flowスレッド 0→1/Flowスレッド 1→0 Port0 Rx 監視スレッド/Port0 Tx 監視スレッド Port1 Rx 監視スレッド/Port1 Tx 監視スレッド NIC0 Rx NIC1 Rx Port0 Rx Thrd NIC0 Tx NIC1 Tx Wk Thrd Port1 Rx Thrd Port0 Tx Thrd Port1 Tx Thrd NIC0 Rx NIC1 Rx NIC1 Tx NIC0 Tx Flow 1→0 Thrd Flow 0 →1 Thrd NIC0 Rx NIC1 Rx Rx0 Thrd NIC1 Tx NIC0 Tx Rx1 Thrd Tx1 Thrd Tx0 Thrd Flow 1→0 Thrd Flow 0→1 Thrd 何を安定させたいかに 合わせて選択する - 各ポートを安定 - tx,rxを安定 - フローを安定 10GbEくらいだと結構余裕 で性能がでた。 2portのNICは 性能が出しきれない ? RSSで解決できるかも
14.
高性能通信基盤開発 現時点での進捗 これらを自由に扱うためのフロントエンドの実装 - VTY Shell -
デバイスコンフィグ設定インターフェース - スレッド動的操作インターフェース - lthread C++ 対応 patch - プロトコルアナライザ インターフェース
15.
まとめ - DPDKを用いたSmallなネットワークスタック - DPDKを用いた高性能通信の試験 -
試験を行う用のフレームワーク - C++の知識、設計技法 本やサイトに書いてあることは簡単だが、 それを実際に使えるようにするまでのコストが高い
16.
最後に Socketの使い方さえよく理解できてない状況から 始めたので一応結構成長できたが、まだまだ lthread(DPDKの一部)のC++対応のpatchを 送ったらIntelのおじさんが賛成してくれた https://mail-archive.com/dev@dpdk.org/msg606 86.html in/outのバランスがむずい - in 知識 -
out 設計実装, 研究 光成さん、一年間本当にお世話になりました。 今後も精進します。
Download