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 :|