Enviar pesquisa
Carregar
DPDKを用いたネットワークスタック,高性能通信基盤開発
•
8 gostaram
•
3,831 visualizações
slankdev
Seguir
サイボウズ・ラボユース成果報告会の発表資料
Leia menos
Leia mais
Internet
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 16
Baixar agora
Baixar para ler offline
Recomendados
Ethernetの受信処理
Ethernetの受信処理
Takuya ASADA
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
Takuya ASADA
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
0円でできる自宅InfiniBandプログラム
0円でできる自宅InfiniBandプログラム
Minoru Nakamura
Recomendados
Ethernetの受信処理
Ethernetの受信処理
Takuya ASADA
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
Takuya ASADA
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
0円でできる自宅InfiniBandプログラム
0円でできる自宅InfiniBandプログラム
Minoru Nakamura
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
データセンターネットワークの構成について
データセンターネットワークの構成について
MicroAd, Inc.(Engineer)
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
VirtualTech Japan Inc.
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
Hirotaka Sato
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのか
Jun Kato
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
akira6592
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす
Akihiro Suda
不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について
Yasunori Goto
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
KVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマーク
VirtualTech Japan Inc.
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
NTT DATA Technology & Innovation
Kernel vm-2014-05-25
Kernel vm-2014-05-25
Hirochika Asai
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
Yoshihiro Nakajima
Mais conteúdo relacionado
Mais procurados
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
データセンターネットワークの構成について
データセンターネットワークの構成について
MicroAd, Inc.(Engineer)
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
VirtualTech Japan Inc.
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
Hirotaka Sato
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのか
Jun Kato
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
akira6592
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす
Akihiro Suda
不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について
Yasunori Goto
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
KVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマーク
VirtualTech Japan Inc.
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
NTT DATA Technology & Innovation
Mais procurados
(20)
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
データセンターネットワークの構成について
データセンターネットワークの構成について
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Docker Compose 徹底解説
Docker Compose 徹底解説
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのか
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす
不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について
分散システムについて語らせてくれ
分散システムについて語らせてくれ
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
KVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマーク
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Semelhante a DPDKを用いたネットワークスタック,高性能通信基盤開発
Kernel vm-2014-05-25
Kernel vm-2014-05-25
Hirochika Asai
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
Yoshihiro Nakajima
Router board勉強会vol2(配布用)
Router board勉強会vol2(配布用)
milk hanakara
Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDP
Ryoga Saito
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Core
slankdev
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
一路 川染
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Motonori Shindo
20170421 tensor flowusergroup
20170421 tensor flowusergroup
ManaMurakami1
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
Hitoshi Sato
Network as a Service - Data plane evolution and abstraction by NSM
Network as a Service - Data plane evolution and abstraction by NSM
Miya Kohno
Software forwarding path
Software forwarding path
Tomofumi Hayashi
Linux packet-forwarding
Linux packet-forwarding
Masakazu Asama
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会
Minehiko Nohara
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会
Minehiko Nohara
20170726 py data.tokyo
20170726 py data.tokyo
ManaMurakami1
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
エイシュン コンドウ
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続
Tomoya Hibi
Ictsc9 infra解説スライド
Ictsc9 infra解説スライド
nasuhorse
FD.io VPP事始め
FD.io VPP事始め
tetsusat
Singularityで分散深層学習
Singularityで分散深層学習
Hitoshi Sato
Semelhante a DPDKを用いたネットワークスタック,高性能通信基盤開発
(20)
Kernel vm-2014-05-25
Kernel vm-2014-05-25
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
Router board勉強会vol2(配布用)
Router board勉強会vol2(配布用)
Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDP
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Core
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
20170421 tensor flowusergroup
20170421 tensor flowusergroup
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
Network as a Service - Data plane evolution and abstraction by NSM
Network as a Service - Data plane evolution and abstraction by NSM
Software forwarding path
Software forwarding path
Linux packet-forwarding
Linux packet-forwarding
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会
20170726 py data.tokyo
20170726 py data.tokyo
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続
Ictsc9 infra解説スライド
Ictsc9 infra解説スライド
FD.io VPP事始め
FD.io VPP事始め
Singularityで分散深層学習
Singularityで分散深層学習
Mais de slankdev
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
slankdev
Kernel vm13lt
Kernel vm13lt
slankdev
OSC2017Hokkaido
OSC2017Hokkaido
slankdev
Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話
slankdev
Seccamp 2016 チューター成果報告
Seccamp 2016 チューター成果報告
slankdev
サイボウズ・ラボユース中間報告会
サイボウズ・ラボユース中間報告会
slankdev
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料
slankdev
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
slankdev
Seurity Camp Award 2016
Seurity Camp Award 2016
slankdev
OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT
slankdev
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料
slankdev
LibPGEN 1st Step Guide
LibPGEN 1st Step Guide
slankdev
libpgenでパケット操作
libpgenでパケット操作
slankdev
ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃
slankdev
Mais de slankdev
(14)
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
Kernel vm13lt
Kernel vm13lt
OSC2017Hokkaido
OSC2017Hokkaido
Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話
Seccamp 2016 チューター成果報告
Seccamp 2016 チューター成果報告
サイボウズ・ラボユース中間報告会
サイボウズ・ラボユース中間報告会
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
Seurity Camp Award 2016
Seurity Camp Award 2016
OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料
LibPGEN 1st Step Guide
LibPGEN 1st Step Guide
libpgenでパケット操作
libpgenでパケット操作
ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃
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 設計実装, 研究 光成さん、一年間本当にお世話になりました。 今後も精進します。
Baixar agora