Openstack Performance Optimization: Numa, Large Pages & Cpu Pinning
Openstack Performance Optimization: Numa, Large Pages & Cpu Pinning
Openstack Performance Optimization: Numa, Large Pages & Cpu Pinning
Daniel P. Berrangé <berrange@redhat.com>
About me
● Contributor to multiple virt projects
● Libvirt Developer / Architect 8+ years
● OpenStack contributor 2 years
● Nova Core Team Reviewer
● Focused on Nova libvirt + KVM integration
nova-api
nova-scheduler
AMQP
nova-conductor
nova-compute
Libvirt+KVM
Database
<vcpu placement='static'>6</vcpu>
<cputune>
<vcpupin vcpu="0" cpuset="0-1"/>
<vcpupin vcpu="1" cpuset="0-1"/>
<vcpupin vcpu="2" cpuset="4-7"/>
<vcpupin vcpu="3" cpuset="4-7"/>
<vcpupin vcpu="4" cpuset="4-7"/>
<vcpupin vcpu="5" cpuset="4-7"/>
<emulatorpin cpuset="0-1,4-7"/>
</cputune>
<memory>2048000</memory>
<numatune>
<memory mode='strict' nodeset='0-1'/>
<memnode cellid='0' mode='strict' nodeset='0'/>
<memnode cellid='1' mode='strict' nodeset='1'/>
</numatune>
<cpu>
<numa>
<cell id='0' cpus='0,1' memory='512000'/>
<cell id='1' cpus='1,2,3,4' memory='1536000'/>
</numa>
</cpu>
<memoryBacking>
<hugepages>
<page size='2' unit='MiB' nodeset='0-1'/>
<page size='1' unit='GiB' nodeset='2'/>
</hugepages>
</memoryBacking>
<cputune>
<vcpupin vcpu="0" cpuset="0"/>
<vcpupin vcpu="1" cpuset="1"/>
<vcpupin vcpu="2" cpuset="4"/>
<vcpupin vcpu="3" cpuset="5"/>
<vcpupin vcpu="4" cpuset="6"/>
<vcpupin vcpu="5" cpuset="7"/>
<emulatorpin cpuset="2"/>
</cputune>
https://wiki.openstack.org/wiki/VirtDriverGuestCPUMemoryPlacement
http://people.redhat.com/berrange/kvmforum2014/