不懂就问系列, qemu 给虚拟机分配的 cpu 并不是和宿主机 cpu 一一对应的。

2022-07-11 09:37:52 +08:00
 elboble

1 ,比方说 12700 一共 20 个核心,给虚拟机分 8 个核心,实际上是在每个 cpu 时间片动态分配的,并不是固定 8 个核给这个虚拟机用。

2 ,如果 1 成立,那么虚拟机的核心数实际上是宿主机上各虚拟机之间的 cpu 调度的权重,分 8 个核的虚拟机比分 4 个核的虚拟机,满载的情况下 cpu 时间多一倍。

3 ,如果 1 ,2 成立,实际上虚拟机上可以分配无限多( 256 以下)的核心,无论宿主机实际几个核心。

1710 次点击
所在节点    KVM
4 条回复
wccc
2022-07-11 09:46:29 +08:00
kokutou
2022-07-11 09:49:07 +08:00
对,vps 超卖 200%就是这样的。
mons
2022-07-11 11:45:46 +08:00
qemu kvm 现在是支持 CPU pinning 的: https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF#CPU_pinning

有些 VPS 提供商的所谓 Dedicated CPU Plan 是 pin CPU core 的,但比 Shared CPU 要贵一些。

例如 Linode 4 GB Shared $20 vs. Dedicated 4 GB $30 ,其余规格相同: https://www.linode.com/pricing/#compute-dedicated
sujin190
2022-07-11 11:59:39 +08:00
理论上是这样,但是实际上估计并不可行,主要是系统中有很多任务是需要在固定的时间内响应的,比如有些中断,你无限分配 cpu 那每个虚拟机被调度的时间会大幅不确定,部分依赖确定时序的任务十之八九肯定会出错,这样肯定不行,应用层大多不怎么依赖确定时间或确定时序,但是底层硬件相关的可就不一样了,否则 cpu 为啥都有依赖高精度晶振

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/865344

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX