Neil Aggarwal wrote:
Hello everyone:
I have a CentOS server running two virtual machines using KVM.
Each machine has its own virtual device since I am using bridged
networking.
I am trying to allocate bandwidth to each virtual machine using tc.
I have these rules set up:
/sbin/tc qdisc add dev v1262 ingress handle ffff:
/sbin/tc filter add dev v1262 parent ffff: protocol ip prio 50 u32 match ip
src 0.0.0.0/0 police rate 5mbit burst 500k mtu 3100 drop flowid :1
/sbin/tc qdisc add dev v1263 ingress handle ffff:
/sbin/tc filter add dev v1263 parent ffff: protocol ip prio 50 u32 match ip
src 0.0.0.0/0 police rate 5mbit burst 500k mtu 3100 drop flowid :1
You can see them when I do a qdisc ls:
qdisc ingress ffff: dev v1262 parent ffff:fff1 ----------------
qdisc ingress ffff: dev v1263 parent ffff:fff1 ----------------
The problem is when v1262 is doing a large upload, v1263 gets starved.
If I remove the ingress qdisc, v1263 runs at full speed regardless of what
v1262 is doing.
Its as if the two devices are using the same queue. I did not think that
would happen since
they are totally separate devices.
Any ideas what is happening here?
I've never tested with a virtual machine so don't know.
I have suggested mtu 3100 in the past as it happened to work on a quick
test on a real 100m nic - maybe for vm you need to go higher, or just
turn off any sort of offload for the virtual device with ethtool and see
if that helps.
ethtool -k <devname>
to see what the settings are and eg.
ethtool -K <devname> gro off
--
To unsubscribe from this list: send the line "unsubscribe lartc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html