x86-64-v2-AES is a generic type which is the same on every platform whereas host simply copies the cpu at hand. Generic types are to be preffered if you want a stable guest environment across different nodes with changing hardware. There might be instruction sets and features you're missing, and therefore performance optimizations, but in most cases it shouldnt matter
Do you only have 1 node or multiple? If just 1, always use ”host”, as you don’t have to be worrying about compatibility with migrating a live VM anywhere.
Host is probably also the best option if you have multiple nodes but the VM is tied to a specific one because of hardware (PCIe/USB) passthrough.
Thanks all for your comments! I defenetly understand a little more now about it. For one second I was hesitating, because I thought if they set it as default then it should be better, but now I see why they did it.
Thanks again!
Wondering if someone can help pick the right guest CPU type in my situation:
Physical CPU is a Ryzen 7950x.
host gives best performance and capability (Windows Subsystem for Linux - WSL works), but causes random reboots in proxmox.
With x86-64-v4, WSL to not work due to lack of Virtualization support, but has great stability in proxmox.
Tried x86-64-v4 + svm custom CPU, but seems like WSL needs more than svm for virtualization support. Which CPU would you recommend that supports virtualization + proxmox stability?
https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_qemu_vcpu_list
"
In short:
If you don’t care about live migration or have a homogeneous cluster where all nodes have the same CPU and same microcode version, set the CPU type to host, as in theory this will give your guests maximum performance.
If you care about live migration and security, and you have only Intel CPUs or only AMD CPUs, choose the lowest generation CPU model of your cluster.
If you care about live migration without security, or have mixed Intel/AMD cluster, choose the lowest compatible virtual QEMU CPU type.
"