×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ネットワーク性能調査を ちょっとやってみる 法政大学 応用情報工学科B4 河原颯太(khwarizmi)
Slide 2
Slide 2 text
自己紹介 - 河原颯太(かわはらそうた) @khwarizmi6514 - 法政大学応用情報工学科 学部4年 金井(ネットワークセキュリティ)研究室所属 - 小学5年から野球を初めて高校3年までやっていた. - 春日部高校出身です! (これを言うといろんなところで先輩後輩が釣れることに最近 気が付いた) - パソコンとは無縁の生活だったが, 大学入学時, 気が付いたらパソコンをやらなけ ればいけなくなっていた. - 一緒に研究をしてくれる後輩募集中 (一人で研究をしていて寂しい)
Slide 3
Slide 3 text
最近やってること - DPDKを用いたネットワークスタック開発 - NICのデバドラ開発 - NICのハードウェア機能活用による性能比較調査 *最近やりたいこと* - FreeBSDで性能調査(ネットワークスタック参照したりしときながら触ったことがな い) - XDP(Internet week での lineの金丸さんのLTが熱かった) - 自作キーボード(おととい自作キットをポチった) - FPGA(購入してLEDチカチカまでしてそのままタンスの奥にいる)
Slide 4
Slide 4 text
話に入る前に ちょうど24時間前くらいに決まったほぼ飛び入りLTなので ぜひ 期待値0で 聞いてください
Slide 5
Slide 5 text
今日の話題 つい最近からやっている NICのハードウェア機能活用による性能比較調査 の現在の進捗を発表します.
Slide 6
Slide 6 text
近年の High speed network 事情 - ハードウェア性能が向上し, ワイヤーレートが非常に伸びている - ネックがハードからソフト的な場所に移っている ⬇ - ソフト的なネックを排除したい - 余っているハードウェアパワーを有効に使いたい
Slide 7
Slide 7 text
近年の High speed network 事情 - ハードウェア性能が向上し, ワイヤーレートが非常に伸びている - ネックがハードからソフトに近い場所に移っている ⬇ - ソフト的なネックを排除したい - 余っているハードウェアパワーを有効に使いたい
Slide 8
Slide 8 text
今日の話題となる手法 - RSS (と RPS) - チェックサムオフローディング - LRO (と GRO)
Slide 9
Slide 9 text
RSS (とRPS) マルチコア環境における問題 - パケット受信のソフト割り込みは1つのCPUに偏ってしまう. - 家庭用PCでもマルチコアが普通の環境出コア数で性能がスケールしないのは非 常によろしくない - 単純に適当にパケットを順番に各コアに割り振るのでは多くの無視できない問題が ある.
Slide 10
Slide 10 text
RSS (とRPS) RSSとは - Receive Side Scalingの略 - パケットをマルチコアで処理する手法 - マルチキューNICでのみ使用可能 RPSとは - RSSのソフトウェア実装
Slide 11
Slide 11 text
RSS (とRPS) 仕組み - パケットヘッダの一部でハッシュ計算をし, ハッシュ値からキューを選択 - 各コアに各キューが割り振られる(と思ってほとんど構わない) - 担当のキューにパケットが来たら各コアが処理 - パケットのヘッダからハッシュを取るため, 同じフローのパケットが分散されることが ない
Slide 12
Slide 12 text
RSS (とRPS) 計測結果 RSS スループット (Gbps) 有効 9.43 無効 5.08
Slide 13
Slide 13 text
RSS (とRPS) ソフト割り込みの様子 ← 前 後→ (ちょっと怪しい...)
Slide 14
Slide 14 text
チェックサムオフローディング - IP, TCP, UDPのチェックサムをNICが計算してくれるやつ - こういう決まりきった計算はハードウェアの方が得意だという風に誰かが言っていま した - 基本的にはCPU使用率を下げる効果がある
Slide 15
Slide 15 text
チェックサムオフローディング 計測結果 checksum offloading スループット (Gbps) CPU使用率 (%) 有効 9.36 96.2 無効 9.29 99.3
Slide 16
Slide 16 text
LRO と GRO 割り込み事情 - 割り込みはとにかく重い(コンテキストスイッチ, キャッシュ汚染) - GbEでショートパケット(64byte)とすると, 1000000000(bit) ÷ 8(byte) ÷ 64(パケット) = 1953125 つまり, 秒間約200万回の割り込みが発生している - さすがに多すぎるでしょ
Slide 17
Slide 17 text
LRO と GRO LROとは - Lerge Receive Offload の略 - 分割されたTCPパケットをNICでリアセンブルする - 割り込みを削減できる GROとは - General Receive Offload の略 - LRO のソフトウェア実装
Slide 18
Slide 18 text
LRO と GRO 計測結果 GRO スループット (Gbps) CPU使用率 (%) 有効 9.41 10.3 無効 5.08 100
Slide 19
Slide 19 text
まとめ うまくNICを使ってちゃんとチューニングをすれば linuxネットワークスタックでも10G出せます