VMwareのホストOSとゲストOS間のネットワーク通信が非常に遅いことがあるそうな。私はホスト・ゲスト間で大量にデータのコピーをしないので今のところ気づいたことはないけれども。
ネットをさまよってみると、どうやらこれはNIC(Network Interface Card)のTSO(TCP Segmentation Offload)と関係するらしい。TSOとは一言で言うと、CPUが処理していたTCP接続をIPパケットに分解する仕事の一部(TCPをセグメントと呼ばれる単位へ分割するタスク)をハードウエア的にNICにやらせてしまおうということだ。そうすればCPUは余計な雑務から開放されるので、その分他の仕事をすることが出きるようになる。
いわゆる開発マシンとして、VMWareクライアントのUbuntuを使っているわけだけども、ホストであるWindowsとの通信がどうにも重いので気になっていた。気になっていたというか遅さに絶えきれなくなったので調べてみたら上記引用のような次第。
仮想Ubuntu上で
# ethtool -K eth0 tso off
で再起動後、確かに通信の遅さは改善されたように感じる。
というメモ。
ちなみにethtoolは最初から入ってなかったので別途インストールをば。