On Tue, Apr 23, 2013 at 10:09:15AM +0200, Jon Martin Sigvaldsen wrote:
Hi
For a school project I am researching performance issues when using libvirt
to run very large numbers of virtual machines.
My experiments indicate that having more CPU cores negatively impacts the
performance. A simple desktop with an Intel Core 2 Duo E6550 performs
better than a server with a 48 core AMD CPU. Limiting the cores used
through 'cputune' improves performance on the server. If anyone has got any
explanations for this, it would be greatly appreciated.
When you get machines with large numbers of CPUs, you've undoubtably
also got a NUMA topology involved. To get maximum performance out of
such machines you need to ensure that each VM runs entirely within
one single NUMA node. If you have a VM whose memory allocation is
split across NUMA nodes, or one where memory is on a different node
to its CPUs, they you will absoletely ruin performance of the machine.
Latest libvirt has integration with a daemon called 'autonuma' which
attempts to place individual VMs within individual NUMA nods when
they are started.
Further on I would like to profile the slowdowns, but I am not sure
how to
approach this problem. Any recommendations on how to do this?
oprofile is one useful tool for profiling kernel + application operation.
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|