5

Is it possible to monitor/limit bandwidth for KVM guests? I'd like to give people VMs on my server but I want to be careful not to go over my monthly bandwidth limit. The only places I can find that support this are 'cloud' frameworks, I'm guessing I'm either missing something simple in Linux, or I need to talk to a router above me (which I don't have access to).

Jess
  • 473
  • 1
  • 6
  • 16

1 Answers1

9

I recommend using libvirt for managing your KVM virtual machines. It makes the whole thing much easier than with just plain QEMU/KVM and provides also nice CPU, IO and network statistics. You will like tools such as virt-top and virt-manager which work on top of the libvirt framework.

To collect the virtual machine interface statistics from a script, you could use virsh command line interface to libvirt or some of the language APIs. The format of the virsh command is as follows:

virsh domifstat VMNAME IFNAME

..where VMNAME is the name of your virtual machine and IFNAME is the name of a (virtual) network interface. To find out a name of a network interface you can do:

virsh dumpxml VMNAME

In the resulting XML output, look for your network interface definition(s). Look for a line such as follows:

<target dev='vnet0'/>

In this case your IFNAME would be "vnet0".

Alternatively you could use a statistics collection daemon, such as collectd which has support for monitoring libvirt statistics, but a simple shell script which some times stores the output of "virsh domifstat" is maybe enough in this case.

snap
  • 1,201
  • 9
  • 17
  • 2
    I do use libvirt. Where do I find network statistics? I'm not installing virt-manager, it wants to install Gnome. – Jess Aug 02 '11 at 16:32
  • 2
    I edited the answer to include further practical information for retrieving libvirt interface statistics with virsh command line tool. Also note that you do not need to install virt-manager on the VM host. You can install it in your workstation and instruct it to connect to a remote VM host (or several). Thus no need for Gnome/X11 libraries on the VM host. – snap Aug 02 '11 at 16:59
  • 1
    Thanks for posting this. Given the general lack of information like this on the net (or just the difficulty finding it), you'd think that 99% of the people using KVM don't have customers. :-P – deltaray Sep 04 '12 at 03:47
  • That is a strange distro that requires gnome for virt-manager. Debian just wants gconf2 - the rest seem like Python libraries. – Natalie Adams Jun 14 '14 at 03:43
  • 2
    I found it useful to use a modified command from this answer to find the interface. `virsh dumpxml VMNAME | grep "target dev"` – Programster Oct 03 '14 at 15:10