VIOPS06: マルチコア時代のコンピューティング活用術

379 views
315 views

Published on

VIOPS06: マルチコア時代のコンピューティング活用術

東京工科大学
浅田様

2011年7月22日(金曜日)10:00-18:00
VIOPS06 WORKSHOP
Virtualized Infrastructures Workshop [06]

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
379
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

VIOPS06: マルチコア時代のコンピューティング活用術

  1. 1. 従来のNIC・ ネットワークスタックの問題点 • マルチコア環境においても一つのNICの受信処理は一つのCPU でしか行えない • 通信量が多いときにパケット処理の負荷が特定のコアへ大きく 偏り性能に悪影響を及ぼす • 1つのNICに届いたパケットを複数のCPUへ分散させる • ハードウェアによる実装:RSS • ソフトウェアによる実装:RPS(Linux) • 分散先CPUの最適化:RFS(Linux) Friday, June 17, 2011
  2. 2. RSS NIC パケットパケットパケット ハッシュ計算 パケット着信 hash queue ディスパッチ 参照 RX Queue #0 RX Queue #1 RX Queue #2 RX Queue #3 cpu0 cpu1 cpu2 cpu3 受信処理 割り込み 受信処理 ■ ■ 0 1 Friday, June 17, 2011
  3. 3. cpu3cpu2cpu1cpu0 割り込み無効化 プロトコル処理 ソケット 受信処理 ユーザ プログラム user buffer socket queue パケット システム コール プロセス起床 ハードウェア割り込み ユーザ空間へコピー パケットパケット ソフトウェア割り込み パケット受信 ハッシュ計算 ディスパッチ プロトコル処理 ソケット 受信処理 ユーザ プログラム user buffer socket queue backlog #1 hash queue 参照 ■ ■ 0 1 CPU間 割り込み backlog #2 backlog #3 RPSFriday, June 17, 2011
  4. 4. RFS NIC デフォルトCPUへ割り込み CPU0 CPU1 CPU2 CPU3 割り込みハンドラ ネットワーク スタック プロセス起床 プロセスA ポーリング バッファ ネットワーク スタック プロセス起床 プロセスB Friday, June 17, 2011
  5. 5. RFS hardware acceleration • RSS対応NICでもRFSが出来るように、 ネットワークスタック+ドライバを拡 張 Friday, June 17, 2011

×