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
ネットワーク性能調査ちょっとやってみる
Search
khwarizmi
December 20, 2018
Technology
0
170
ネットワーク性能調査ちょっとやってみる
khwarizmi
December 20, 2018
Tweet
Share
More Decks by khwarizmi
See All by khwarizmi
IntelNIC 送受信を学ぶ
khwarizmi
3
910
NICのデバドラ開発
khwarizmi
0
160
ハードウェア乱数を用いた謝辞代表者の決定
khwarizmi
0
68
僕はDPDKをやっている人ではありません(XDP・netmap入門)
khwarizmi
1
690
klab インターン成果物発表
khwarizmi
0
280
Z4「高速なFW/IDSの実装」
khwarizmi
0
160
HIGHSPEED PACKET IO
khwarizmi
0
95
Other Decks in Technology
See All in Technology
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
3
430
AWS re:Invent 2024 ふりかえり勉強会
yhana
0
670
Denoで作るチーム開発生産性向上のためのCLIツール
sansantech
PRO
0
100
OPENLOGI Company Profile
hr01
0
57k
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
5
340
Wantedly での Datadog 活用事例
bgpat
2
1k
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
270
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
23
6.7k
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
150
30分でわかるデータ分析者のためのディメンショナルモデリング #datatechjp / 20250120
kazaneya
PRO
10
2.5k
20241228 - 成為最強魔法使!AI 實時生成比賽的策略 @ 2024 SD AI 年會
dpys
0
300
UI State設計とテスト方針
rmakiyama
4
920
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
62
7.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Rails Girls Zürich Keynote
gr2m
94
13k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
540
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Building Applications with DynamoDB
mza
92
6.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Transcript
ネットワーク性能調査を ちょっとやってみる 法政大学 応用情報工学科B4 河原颯太(khwarizmi)
自己紹介 - 河原颯太(かわはらそうた) @khwarizmi6514 - 法政大学応用情報工学科 学部4年 金井(ネットワークセキュリティ)研究室所属 - 小学5年から野球を初めて高校3年までやっていた.
- 春日部高校出身です! (これを言うといろんなところで先輩後輩が釣れることに最近 気が付いた) - パソコンとは無縁の生活だったが, 大学入学時, 気が付いたらパソコンをやらなけ ればいけなくなっていた. - 一緒に研究をしてくれる後輩募集中 (一人で研究をしていて寂しい)
最近やってること - DPDKを用いたネットワークスタック開発 - NICのデバドラ開発 - NICのハードウェア機能活用による性能比較調査 *最近やりたいこと* - FreeBSDで性能調査(ネットワークスタック参照したりしときながら触ったことがな
い) - XDP(Internet week での lineの金丸さんのLTが熱かった) - 自作キーボード(おととい自作キットをポチった) - FPGA(購入してLEDチカチカまでしてそのままタンスの奥にいる)
話に入る前に ちょうど24時間前くらいに決まったほぼ飛び入りLTなので ぜひ 期待値0で 聞いてください
今日の話題 つい最近からやっている NICのハードウェア機能活用による性能比較調査 の現在の進捗を発表します.
近年の High speed network 事情 - ハードウェア性能が向上し, ワイヤーレートが非常に伸びている - ネックがハードからソフト的な場所に移っている
⬇ - ソフト的なネックを排除したい - 余っているハードウェアパワーを有効に使いたい
近年の High speed network 事情 - ハードウェア性能が向上し, ワイヤーレートが非常に伸びている - ネックがハードからソフトに近い場所に移っている
⬇ - ソフト的なネックを排除したい - 余っているハードウェアパワーを有効に使いたい
今日の話題となる手法 - RSS (と RPS) - チェックサムオフローディング - LRO (と
GRO)
RSS (とRPS) マルチコア環境における問題 - パケット受信のソフト割り込みは1つのCPUに偏ってしまう. - 家庭用PCでもマルチコアが普通の環境出コア数で性能がスケールしないのは非 常によろしくない - 単純に適当にパケットを順番に各コアに割り振るのでは多くの無視できない問題が
ある.
RSS (とRPS) RSSとは - Receive Side Scalingの略 - パケットをマルチコアで処理する手法 -
マルチキューNICでのみ使用可能 RPSとは - RSSのソフトウェア実装
RSS (とRPS) 仕組み - パケットヘッダの一部でハッシュ計算をし, ハッシュ値からキューを選択 - 各コアに各キューが割り振られる(と思ってほとんど構わない) - 担当のキューにパケットが来たら各コアが処理
- パケットのヘッダからハッシュを取るため, 同じフローのパケットが分散されることが ない
RSS (とRPS) 計測結果 RSS スループット (Gbps) 有効 9.43 無効 5.08
RSS (とRPS) ソフト割り込みの様子 ← 前 後→ (ちょっと怪しい...)
チェックサムオフローディング - IP, TCP, UDPのチェックサムをNICが計算してくれるやつ - こういう決まりきった計算はハードウェアの方が得意だという風に誰かが言っていま した - 基本的にはCPU使用率を下げる効果がある
チェックサムオフローディング 計測結果 checksum offloading スループット (Gbps) CPU使用率 (%) 有効 9.36
96.2 無効 9.29 99.3
LRO と GRO 割り込み事情 - 割り込みはとにかく重い(コンテキストスイッチ, キャッシュ汚染) - GbEでショートパケット(64byte)とすると, 1000000000(bit)
÷ 8(byte) ÷ 64(パケット) = 1953125 つまり, 秒間約200万回の割り込みが発生している - さすがに多すぎるでしょ
LRO と GRO LROとは - Lerge Receive Offload の略 -
分割されたTCPパケットをNICでリアセンブルする - 割り込みを削減できる GROとは - General Receive Offload の略 - LRO のソフトウェア実装
LRO と GRO 計測結果 GRO スループット (Gbps) CPU使用率 (%) 有効
9.41 10.3 無効 5.08 100
まとめ うまくNICを使ってちゃんとチューニングをすれば linuxネットワークスタックでも10G出せます