From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Neil Aggarwal" Date: Wed, 08 May 2013 18:11:29 +0000 Subject: Poor performance of ingress filter for separate VMs Message-Id: <000f01ce4c17$76dfa490$649eedb0$@JAMMConsulting.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: lartc@vger.kernel.org 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? Thanks, Neil -- Neil Aggarwal, (972)834-1565, http://UnmeteredVPS.net/centos Virtual private server with CentOS 6 preinstalled Unmetered bandwidth = no overage charges