我首先写了我的问题在stackoverflow认为这是一个Maven的代理软件问题。
但是我意识到这是我的虚拟化堆栈(Ubuntu 10.04.3 LTS上的libvirt 0.7.5-5ubuntu27.19 / kvm 1:84 + dfsg-0ubuntu16 + 0.12.3 + noroms + 0ubuntu9.16)的一个问题。
这里是我的VM的libvirtnetworkingconfiguration:
<interface type='bridge'> <mac address='52:54:00:0f:30:ea'/> <source bridge='br0'/> </interface>
而br0的/etc/network/interfaces部分:
auto eth3 iface eth3 inet manual auto br0 iface br0 inet static address 192.168.1.200 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254 bridge_ports eth3 bridge_stp off bridge_maxwait 0
所以问题就出在这里:有时候,当一个Maven客户端正在尝试构build一个项目并从运行Maven代理的虚拟机下载大量的jar文件时,它会在下载其中的一个时进行下载:
Downloading: http://192.168.1.213:8081/artifactory/repo/org/apache/apache/9/apache-9.pom Downloaded: http://192.168.1.213:8081/artifactory/repo/org/apache/apache/9/apache-9.pom (15 KB at 14.0 KB/sec) Downloading: http://192.168.1.213:8081/artifactory/repo/org/apache/maven/plugins/maven-release-plugin/2.2.1/maven-release-plugin-2.2.1.jar 5 KB
我已经消除了软件问题,因为我在另一台真实的计算机上configuration了一个类似的服务器,它的工作。
我试过切换ip_forward到0读取networking冻结与KVM / libvirt和ip_forward = 1没有结果。
我已经尝试添加CAP_NET_ADMIN能力阅读ubuntu维基上的KVM /networking没有结果。
我试图configuration我的br0在/etc/network/interfaces br0添加这些属性而没有结果:
bridge_fd 9 bridge_fd 0 bridge_hello 2 bridge_maxage 12
(还试过了bridge_stp on )
我试图改变虚拟networking接口的模型,读取博客条目 ,在<interface>标签内添加<model type='e1000'/> ,并且最终得到了更好的结果这是不常见的)。 与rtl8139模型更好。
我试图捕获我的客户端和虚拟机之间的交换,并且当TCP连接客户端发送Len=0的[ACK]时,似乎总是卡住。 这是Wireshark捕获的交换 。
看来我有这个bug (在启动板上) 。
有人可以指点我一个更好的libvirt / KVMconfiguration?
你可以尝试运行一个新的虚拟化堆栈,这个堆栈已经被反向清理了。 添加以下PPA,并给它一个去;