mashirle@xxxxxxxxxxxxxxxxxx wrote on 01/27/2011 02:15:05 PM: > On Thu, 2011-01-27 at 22:05 +0200, Michael S. Tsirkin wrote: > > One simple theory is that guest net stack became faster > > and so the host can't keep up. > > Yes, that's what I think here. Some qdisc code has been changed > recently. I ran a test with txqueuelen set to 128, instead of the default of 1000, in the guest in an attempt to slow down the guest transmits. The change had no effect on the throughput nor on the CPU usage. On the other hand, I ran some tests with different CPU pinnings and with/without hyperthreading enabled. Here is a summary of the results. Pinning configuration 1: pin the VCPUs and pin the vhost thread to one of the VCPU CPUs Pinning configuration 2: pin the VCPUs and pin the vhost thread to a separate CPU on the same socket Pinning configuration 3: pin the VCPUs and pin the vhost thread to a separate CPU a different socket HT Pinning Throughput CPU Yes config 1 - 40% - 40% Yes config 2 - 37% - 35% Yes config 3 - 37% - 36% No none 0% - 5% No config 1 - 41% - 43% No config 2 + 32% - 4% No config 3 + 34% + 9% Pinning the vhost thread to the same CPU as a guest VCPU hurts performance. Turning off hyperthreading and pinning the VPUS and vhost thread to separate CPUs significantly improves performance, getting it into the competitive range with other hypervisors. Steve D. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html