smp 支持多处理器、多核技术、超线程
查看宿主机cpu情况 /proc/cpuinfo
processor 条目包括这一逻辑处理器的唯一标识符.
physical id 条目包括每个物理封装的唯一标识符。几个物理的cpu.
core id 条目保存每个内核的唯一标识符。
siblings 条目列出了位于相同物理封装中的逻辑处理器的数量。
cpu cores 条目包含位于相同物理封装中的内核数量
cpu cores与 siblings 相同,则说明没有使用超线程,如果siblings 是cpu cores的2倍,则说明支持2个超线程.

#逻辑cpu个数
cat /proc/cpuinfo |grep "processor" |wc -l
#物理cpu个数
cat /proc/cpuinfo |grep "physical id" |sort |uniq | wc -l
#每个cpu 上core个数
cat /proc/cpuinfo |grep "core id" |sort |uniq | wc -l
#没有cpu上 逻辑cpu
cat /proc/cpuinfo |grep "siblings" |sort |uniq |awk -F: '{print $2}'

在qemu-kvm 命令中 -smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]
n 客户机中使用逻辑cpu数量
maxcpus 客户机中最大可能被使用的cpu数量
cores 设置每个cpu socket上的core数量
threads设置每个cpu core上的线程数
sockets cpu sockets 数量

qemu-systm-x86_64 -smp 8 ,sockets=2,cores=2,threads=2

kvm允许客户机过载使用物理资源,为客户机分配的cpu和内存数量多于与物理机上的资源。
一台宿主机上的多个虚拟客户机不会在同一时刻负载很高。
cpu过载使用,是让一个或多个客户机使用vCPU的总数量超过实际拥有的物理CPU数量。qemu会启动更多的线程来为客户机提供服务。
推荐做法 对多个单CPU客户机使用over-commit,如有4个逻辑cpu的宿主机,同时运行多于4个(8个,16个)客户机,每个客户机都分配一个vCPU。宿主机Linux对每个客户机的调度非常有效。
最不推荐让某一客户机的vCPU数量超过物理系统上存在的cpu数量。如4个逻辑cpu的宿主机,同时运行一个或多个客户机,每个客户机的vCPU 数量多于4个。会带来明显的性能下降,性能不如为客户机分配2个或4个vCPU。
一般不推荐在生产环境 过载使用CPU。需要进行严格的性能测试和稳定性测试。