On 12/10/2016 18:04, Alex Williamson wrote:
> On Wed, Oct 12, 2016 at 10:51 AM, Ethan Thomas <thomas.et...@gmail.com
> <mailto:thomas.et...@gmail.com>> wrote:
> I've been using a SuperMicro X8DTH-iF for quite some time with no
> problems. However it's worth noting that with some generations of
> multi-cpu boards the PCI-E lanes and ram may be associated with a
> specific CPU, so you may need to adjust which slots and cores you
> associate with a particular VM for best performance.
> I would go so far as to say this is true of any modern multi-socket
> system, it's called NUMA, Non-Uniform Memory Access. You can use tools
> like lstopo to identify the locality of memory, devices, and
> processors. Using memory and CPU from the correct node is important for
> an VM, and an assigned device should be an extra pull towards the I/O
> local node.
Memory locality is one thing I totally forgot about when setting up my
VMs. Do you have any example how to reserve huge pages on a specific
node via sysctl, and refer to it later in libvirt configuration?
Currently I only use this:
~ # cat /etc/sysctl.d/80-hugepages.conf
# Reserve this many 2MB pages for virtual machines
vm.nr_hugepages = 28000
~ # grep hugepages /etc/mtab
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
~ # grep hugepages /etc/libvirt/qemu.conf | grep -vE "^#"
hugetlbfs_mount = "/dev/hugepages"
~ # virsh dumpxml lublin-vfio1 | head -11
<domain type='kvm' id='3'>
<page size='2048' unit='KiB'/>
... which entirely ignores memory locality. TIA!
vfio-users mailing list