我有一个连接到快速networking的VMWare ESXi主机。 主机运行两个虚拟机:
网关有两个networking接口,一个连接到外部networking(vSwitch0),一个连接到服务器的内部networking(vSwitch1)。 它已经安装了火器 ,它正在为内部客户机做NAT和端口转发。
客户端机器具有内部IP,并通过网关连接到互联网。 一切正常,但从客户端到Internet的传输速度非常慢,低于30kB / s。 从网关到互联网的传输速度很快(100Mbit),从互联网到客户端的传输速度也很快。 我试过做一个networking转储,看看问题可能在哪里,但没有find任何东西。 一切看起来像线速度慢。
另外,两台虚拟机之间的传输速度几乎是全千兆。 所以这也不是问题。 这两台机器都运行Debian Lenny,没有特别的修改。 我正在使用VMXNET半虚拟化networking的开放虚拟机工具。
我find了解决这个问题的办法。
对于完全内部的networking(没有连接到任何物理networking接口),您需要从操作系统内禁用TCP分段卸载。
这是一个简单的命令:
ethtool -K <interface> tso off
这个命令后,我的传输速度从30kb / s到100Mbit。
你有没有尝试使用另一种types的虚拟网卡? E1000仿真似乎对我来说很好,也许它是基于驱动程序的?