Most large workloads such as SAP HANA require special, highly optimized configuration to run in a virtual machine. Virtual resources such as memory and CPU must be carefully configured to ensure optimum performance of the virtual machine workload. Default VM configuration created by tools such as virt-install are not optimized and often result in poor performance of large workloads due to memory access latencies and incorrect/incomplete information available to the VM's task scheduler.
Currently, users deploying large workloads must manually optimize virtual CPU and memory resources, which can be error-prone and if not done properly can actually degrade performance. This project aims to create a tool that can produce suggested vCPU and vNUMA configuration based on a VM configuration template and capabilities of the target virtual machine host. E.g. something along the lines of
virsh cpu-topology-generate large-vm.xml host-caps.xml
where large-vm.xml contains the desired vCPU and memory amounts, e.g.
<domain> ... <memory unit='GiB'>512</memory> <vcpu placement='static'>128</vcpu> ... </domain>
and host-caps.xml contains the output of 'virsh capabilities' from the target virtual machine host. cpu-toplogy-generate produces libvirt domXML with optimized vCPU, vNUMA, and memory configuration for the target host. A third option might be useful to control the optimization level, e.g. optimize=performance or optimize=compatibility. The latter is for use-cases where performance is desirable, but compatibility (migratability) is required.
Looking for mad skills in:
Nothing? Add some keywords!
This project is part of:
Hack Week 16
This project is one of its kind!