日記
TCP Offload
2011年02月23日
さんが、筋力トレーニングをしているところに、
さんが、話しかけているのを聴いていて、
> チェックサム計算をNICにオフロード処理させると
> Wiresharkに限らずパケットキャプチャーソフトでチェックサムエラー表示が出ることがあります。
ふと、気になってgoogleしてみたら、こんなのがありました。
http://sakura.cb-faq.com/faq/public/app/servlet/relatedqa?QID=001387
Q: さくらのVPSで「CentOS/Ubuntu/FreeBSD」を利用していますが、回線速度が遅くアクセスに時間がかかります。
A:
さくらのVPSにおいて、不特定のVPS収容ホストとクライアント環境(プロバイダ等)の組み合わせ
により、さくらのVPSからのダウンロード方向の通信に遅延が発生する場合があります。
・http,ftp,scp等でのファイルのダウンロード速度が極端に遅い。
・ファイルをダウンロード中に通信が切断される。
・ホームページの静的なコンテンツ表示に異常に時間がかかる。
上記のような現象が確認された場合、設定変更を行うことで回避できる場合があります。
■設定方法
※以下の手順は root として操作する必要があります。
1. ethtool コマンドの実行
ethtool コマンドにて tcp segmentation offload を off に設定します。
# ethtool -K eth0 tso off
上記設定は再起動を行うと無効になります。
2. 設定の確認
下記のコマンドで tcp segmentation offload: off になっていることを確認します。
# ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: off
large-receive-offload: off
***
ちょっと、確認してみると、
[spinor@www17292u:~]$ sudo /sbin/ethtool -k eth0
Offload parameters for eth0:
Cannot get device udp large send offload settings: Operation not supported
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: off
udp fragmentation offload: off
generic segmentation offload: off
generic-receive-offload: off
と、既にこんな感じだったので、デフォールトを変更したのかしらん?
***
TCP offloadというのは、何かと鬼門か?
http://www.usenix.org/events/hotos03/tech/full_papers/mogul/mogul.pdf
さくらのVPSの場合は、KVMと相性が悪いのかな。
http://www.ginnokagi.com/2008/05/vmwaretcp_segmentaion_offload.html
VMwareとTCP Segmentation Offload (TSO)
http://www17292u.sakura.ne.jp/spinor/
レス一覧
-
スピノルさん、おはようございます。
こ・これ、、、、私には、ふかすぎます(^^;)
でも、勉強になりました。。。(^^;)
ありがとうございますm(_)m (^^;)
byの~てんき at2011-02-24 08:41
-
スピノルさん
早速、ethtoolをインストール
apt-get install ethtool
してVoyage MPD側のtcp segmentation offload も
ethtool -K eth0 tso off
で off にしました(^^;)
root@voyage:~# ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: off
large-receive-offload: off
ntuple-filters: off
receive-hashing: off
↓
root@voyage:~# ethtool -K eth0 tso off
root@voyage:~# ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: off
large-receive-offload: off
ntuple-filters: off
receive-hashing: off
筋力トレーニングになりました(^^;)
byの~てんき at2011-02-24 19:00
-
yamamoto2002さん、
> TCP・UDPセグメンテーションオフロードって……!
> そんなモンスターみたいな機能が普通のNICに載ってる時代なんですね
さらに最近は、HTTPオフロードと言って、HTTPサーバがNICに載ってるそうです。
(←嘘←だと思うが、自信が無い。)
byスピノル at2011-02-26 21:45
-
の~てんき さん、
> Voyage MPD側のtcp segmentation offload も
> ethtool -K eth0 tso off
ちゃんと調べた訳では無いのですが、私の印象としては、この機能は、
KVMとか、VMwareとか仮想化しているときには、不幸の種になったとしても、
すっぴんのOSでは、まともに動くのではないかしらん。
(単なる、想像ですが。)
それと、このethtoolでの設定は、リブートするとご破算になってしまうので、
もし、恒久的に設定しておきたいのであれば、なにか手当てが必要です。
上記のFAQでは、udevを使えとしてましたね。私の感覚だと、rc.localみたいな感じ
なのですが、最近は、そんなもの?
byスピノル at2011-02-26 21:54
-
スピノル さん
> すっぴんのOSでは、まともに動くのでは・・・
> リブートするとご破算になってしまう・・・
了解しました♪
恒久的設定にする場合は、なにか対処を考えます(^^ゞ
byの~てんき at2011-02-27 00:19