This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


RE: [Xen-users] XCP bandwidth management

To: <xen-users@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-users] XCP bandwidth management
From: <admin@xxxxxxxxxxx>
Date: Fri, 20 May 2011 12:00:42 -0500
Delivery-date: Fri, 20 May 2011 10:03:39 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
Importance: Normal
In-reply-to: <BANLkTik7q4pEHUaucDbUeyYbHE1SxEz7Zw@xxxxxxxxxxxxxx>
List-help: <mailto:xen-users-request@lists.xensource.com?subject=help>
List-id: Xen user discussion <xen-users.lists.xensource.com>
List-post: <mailto:xen-users@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=unsubscribe>
Reply-to: admin@xxxxxxxxxxx
Sender: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcwXDK02C8tiXROIQJSfvsveAA11mQAAd0kg

You can limit the outbound bandwidth rate using the Network Properties QoS option on a per VM basis.  That would prevent of lot of potential abuse.  You would not need to limit each one to 1Mbps, though.  You could set it higher than that.


Alternatively, you could write an application that checked bandwidth stats using the API and then updated the QoS limit using the API.  That would permit you a lot of flexibility when writing business rules to manage it.


-----Original Message-----
From: xen-users-bounces@xxxxxxxxxxxxxxxxxxx [mailto:xen-users-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of msgbox450@xxxxxxxxx
Sent: Friday, May 20, 2011 11:39 AM
To: xen-users@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-users] XCP bandwidth management


Hi all,


I've got XCP 1.0 up and running nicely and would like to use it in production. However I'm struggling with the concept of bandwidth management. It seems like such a common problem that everyone must have, but I can't find any clear direction in which to go.

The dedicated host I am using (Hetzner) gives me a 5TB monthly bandwidth quota which needs to be shared between all the VMs on the XCP.

Ideally I would like something to automatically manage the bandwidth such that each VM is capable of using the full 100mbps speed of the connection, but will be throttled back if the throughput is sustained, so we have e.g. 24 x 1GB VMs on the host with average of 213GB/month bandwidth usage each.

Alternatively it might be easier to just route all the virtual interfaces though a VM than runs pfsense or use tc on the host to just set some sort of shaping on the physical interface itself, but I really don't know the best way to go about it.



Things I've found so far aren't so good:

1 - Limit the interface using the XenCenter GUI... but that means the VM would never be able to go above about 1mbps, even if it's sat there and used no bandwidth for the past week and is well within its quota, so that's not ideal.


2 - Use sFlow in XCP to capture the data. Well this works for looking at how much bandwidth they are using, but I haven't found any existing tool that will act on that data to do traffic shaping.


3 - Use the XAPI calls to check the bandwidth usage.



With methods 2 and 3 I guess I could write something that collects the data and stores it a database table, somehow work out how much the connection needs to be slowed by and then apply it using the XAPI, but that seems rather hacky and difficult and there must be a better way?



If anyone could give some tips on how to do this I'd really appreciate it. Basically I just want the quickest and easiest way to make it so that the server as a whole doesn't go over its bandwidth limit without limiting all the guests to a tiny speed individually.



Xen-users mailing list