The license of some operating systems can limit the number of sockets, such as Windows desktop supports up to 4 sockets for up to 2 socket,windows servers. In addition, the performance of the 2 threads typically on different cores will be better than the performance of 2 threads on the same-phase core. At the same time Vcpus topology, Libvirt treats a Vcpus in the virtual machine as: 1 socket with 1 core and no hyper-threads
Briefly describe the process by which OpenStack generates CPU topology:
- Get the desired and maximum range of VMS based on Image.metedata (Socket, Core, Thread)
- Hw_cpu_max_sockets, Hw_cpu_max_cores, hw_cpu_max_threads specified range
- Hw_cpu_sockets, Hw_cpu_sockets, hw_cpu_sockets specify expectations
- According to FLAVOR.VCPU, all Socket/core/thread are listed as Vcpu=socket*core*thread
- Use the specified desired parameters and high performance to filter out the appropriate socket/core/thread combinations that thread tries to assign to different sockets and cores
Windows limits the number of sockets workaround:
OpenStack Version: Mitaka
Specifies the maximum number of hw_cpu_sockets supported by Windows image, such as:
Reference Documentation:
http://blog.csdn.net/quqi99/article/details/50988089
Https://wiki.openstack.org/wiki/VirtDriverGuestCPUMemoryPlacement
Windows Limits of sockets