You select the best possible hardware for the job, you optimize the host OS to deliver the best performance ever seen by mankind, and you tweak your high-performance vSwitch to ensure nothing, nothing, could possibly stop you now. You rub your bloodshot eyes, run 'openstack server create' and, well, things don't look so rosy.
Welcome to the world of OpenStack on NUMA-based architectures, where one poor scheduling decision can result in drastic performance reductions. Thankfully, OpenStack realized this some time ago and has been doing many wonderful things since then to prevent this pain. In this talk, we shine a light on all things NUMA, from both a general and OpenStack-orientated perspective.
Coming out of this talk, you should know everything there is to know about NUMA in OpenStack and will be able to, one can hope, finally put those performance issues to bed and get some sleep.
The talk is multi-faceted, covering a breadth of topics from hardware design right up to user interaction with OpenStack deployments. We aim to cover:
- What NUMA is and why it exists
- How and to what extent NUMA can affect your OpenStack deployment, and the techniques we use under-the-hood to prevent any performance degradation
- What you, as a user, can do to further optimize your instances' performance
In addition, work continues on these features. We also take a look forward at some of the work we're doing to further improve things:
- Why OVS-DPDK doesn't deliver on NUMA-based systems, and what we're doing about it (*)
- Why live migration with CPU pinning doesn't work, and what we're doing about it (*)
(*) If we haven't already done something about it by now