なろぐ2

PC関連のメモ帳

チェックサムオフロード

チェックサムオフロードのお話


TCPを例に例えると、ヘッダ内に持っている『きちんとデータを送れてるかい?』という
情報のチェックを行う事 と考えて良いかな?

古いOSでは自身がCPUのパワーを使ってそのチェックを行っていましたが、NIC側でチェックを
お願いしますねというのがここ最近の仕様。
インテルNICはもちろん、安価なRealtek製のNICでもチェックサムオフロードの設定はあります。

その効果は
Microsoftのテストでは、TCP/IPチェックサムのオフロードだけで、CPUの使用における
>最高30パーセントのパフォーマンスの向上が見られました
http://msdn.microsoft.com/ja-jp/windows/hardware/gg463469.aspx
という素晴らしいものらしいのですが、ぶっちゃけこれは2001年のお話。

2001年のPC事情はどんなでしたっけ?と調べてみると
Akiba PC Hotlineさんより
http://akiba-pc.watch.impress.co.jp/hotline/20011228.html
あらま、シングルコアCPUでやっと2GHz到達という時期だったんですね。


さて、時代は進んで2012年。CPUのクロックこそ1.5~2倍程度にしか伸びていませんが、
コア数は4倍、6倍、8倍となっています。
これはもうチェックサムの計算もOS任せの方が速いんじゃない?とか思ったので即実行。


テスト環境はPhenomII 1090T(定格)、メモリ16GB、Win7 64bit、NICは多分Realtekの8111

Windows7ですので、
TCP Chimney Offload の無効化
Receive-Side Scaling(RSS)の無効化
Network Direct Memory Access(NetDMA)の無効化
はもちろん済み
※この辺の話は↓
http://blogs.yahoo.co.jp/narolll/33387460.html

あとはNIC側の設定

イメージ 1

スクリーンショットにある
IPv4チェックサムオフロード
TCPチェックサムオフロード(IPv4IPv6
UDPチェックサムオフロード(IPv4IPv6
一括送信オフロードv2(IPv4IPv6
と全て無効にしてみました。

ここまで長々と書いてきましたが、実際動かした感じは…良く解らない(笑)

Webへアクセスした時のレスポンスが上がったかもと感じる場面もありますが、
こんなに遅かったっけ?と思うサイトもあったりで(Yahooブログは遅い感じ)、
今回の実験ではメリットがあるのかどうかは判断の難しいところです。

CPUに高負荷がかかっている状態でネットワークに繋ぐと違いが解るのかもしれません。