TSO(LSO)による非対称な速度低下
- TSO(TCP Segmentation OffLoading)もしくはLSO(Large Segmentation OffLoading)はパケット分割の調整をCPUからネットワークカードに移し,CPU負荷を下げ転送効率を上げるもの.
- TCP MultiData Transmitともいう?
- TCPによる転送中数10MB転送したあたりで急激に転送速度が落ち事実上転送不能になるが,TCP接続を逆方向に張った場合には全く速度低下現象が起きないと言う場合,このTSOの影響である可能性が高い.
- 小さなファイルの場合速度に影響が出る前に転送が終るために問題が起きていることがわからない.
- 最近のLinuxではTSOが有効になっている場合が多い.
- ethtool -k eth0 で表示される tcp segmentation offload: の値により判別できる.
- ethtool -K eth0 tso off とすればこの機能は無効にできる.
- SolarisのではLSOとよぶらしいが,nddには無効化出来るパラメータがない?
- リンク
- http://as-is.net/blog/archives/001196.html
- http://www.turbolinux.co.jp/support/document/knowledge/763.html
- modules.confにoptions e1000 RxIntDelay=0,0等を追加すると書かれている.
- http://www.inliniac.net/blog/tag/ethtool
- パケットサイズが大きくなり過ぎsnortのストリーム再構成に影響を与えることについて.
- http://xgu.ru/wiki/TCP_tuning
- kernel2.6.11以前に問題があり2.6.12で修正されたと記述あり