VMware Workstationでネットワークが遅い場合の改善策
僕は会社のPCでは、Windows 7にVMware Workstationを入れて、ゲストOSとしてUbuntu 11.10を入れて「プログラミングはUbuntu、それ以外はWindows」って感じで仕事してます。開発をする時はどっぷりUbuntuの世界の中で、それ以外の業務はWindowsで、って感じで完全に独立して作業してることがほとんどでした。
しかし、あるツールを作っている時に、Ubuntuでサーバを上げて、Windows上のWebブラウザからそのサーバにアクセスしてテストする、ってことをやり始めた時に、ホストとゲスト間のネットワークが劇遅であることに気がつきました。SSHでUbuntu内から他のサーバにつなぐ際にも遅かったんですけど、SSH絡みの手順が何か遅い or 相手のサーバが混んでるんだきっと、と自分に言い聞かせてごまかしてきました。でも、ホストOSのWebブラウザからAJAXリクエストがゲストOSに飛ぶ度に数十秒待たされては、さすがに我慢できません。
そこで調べてみると、TCP Segmentation Offload(TSO)をOFFにすればいい、ということが書かれているブログがいくつか見つかりました。例えば以下とか。
なるほど簡単そうだ、と思って自分のPCのNICに対する詳細設定を確認しに行くと・・・
「ない!あるはずのものがない!!」
TSO関連の設定項目が一つも見あたりません。これは困った。
そこで同僚に教えてもらいました。なんとWindowsのレジストリをいじってOFFにできると!
早速試してみると・・・おぉぉ!無事ホストOSとゲストOS間の通信速度が改善。全くストレスのない状態になりました。もちろんゲストOSから外のサーバにSSHする際もバッチリ。すばらしい。
もしVMwareを使っててネットワークの遅さを我慢している人は、上記を試してみてください。
あわせて読みたい: Facebook上でのやり取り