目次~
#contents

**概要 [#d7234809]
TSO(TCP Segmentation Offload)とは、TCP通信の際にセグメント分割タスクの処理をCPUからNICに移管する技術のことである。理論的にはTSOによりTCP通信の処理をCPUとNICに分散させ、CPUの処理をNICに肩代わりさせることにより浮いたCPUリソースを有効活用しようという考え方である。~
しかしながら、環境によってはこの機能により通信の劣化やインターフェイスに過負荷がかかった際に通信が途切れる、パケットロスが発生するなどの不具合が発生する可能性があるため、以下の手順にて無効化する。

**状態の確認方法 [#l75357d4]
ethtoolを使用して設定状態を確認する。~~

-設定の確認
 ethtool -k eth0

-出力結果
 Offload parameters for eth0:
 rx-checksumming: on
 tx-checksumming: on
 scatter-gather: off
 tcp-segmentation-offload: off
 udp-fragmentation-offload: off
 generic-segmentation-offload: on
 generic-receive-offload: off
 large-receive-offload: on

上記の内、以下の項目がTSO関連の項目となる。これらがonの場合はTSOが動作している。

 rx-checksumming: on
 tx-checksumming: on
 tcp-segmentation-offload: on

**設定変更() [#bbd6fca9]
**設定変更 [#bbd6fca9]
ethtoolを使用して設定を無効化する。~
この方法は一過性の設定のため、恒常的に無効化するには後述の手順を行う必要がある。

-設定変更~
 ethtool -K eth0 rx off tx off tso off

-変更結果確認
 ethtool -k eth0

無効化設定が適用された場合は以下の表示となる~
 rx-checksumming: off
 tx-checksumming: off
 tcp-segmentation-offload: off

**設定変更(恒久) [#m28cae58]
無効設定を保持するためには、起動時にethtoolを動作させて変更を行う必要がある。~
インターフェイスの設定ファイル(/etc/sysconfig/network-scripts/ifcfg-eth[n])にETHTOOL_OPTSにてethtoolのオプションを設定することができるが、TSO関連の設定はこのオプションでは定義できない。~
このため、/etc/rc.d/rc.localなどにethtoolを実行する設定を行い、起動時に実行させる。

-/etc/rc.d/rc.localに追記
 /sbin/ethtool -K eth0 rx off tx off tso off

**エラー [#v165c194]
-Cannot set device tcp segmentation offload settings: Invalid argument~
このエラーはインターフェイスがTSOをサポートしていない場合に発生する。~
送受信のチェックサム(rx tx)はサポートしていても、TSOをサポートしていないケースもある。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS