V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
KVM Installation
KVM on Ubuntu
elboble
V2EX  ›  KVM

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

  •  
  •   elboble · 2022-07-11 09:37:52 +08:00 · 1649 次点击
    这是一个创建于 626 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    4 条回复    2022-07-11 11:59:39 +08:00
    kokutou
        2
    kokutou  
       2022-07-11 09:49:07 +08:00 via Android
    对,vps 超卖 200%就是这样的。
    mons
        3
    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
        4
    sujin190  
       2022-07-11 11:59:39 +08:00
    理论上是这样,但是实际上估计并不可行,主要是系统中有很多任务是需要在固定的时间内响应的,比如有些中断,你无限分配 cpu 那每个虚拟机被调度的时间会大幅不确定,部分依赖确定时序的任务十之八九肯定会出错,这样肯定不行,应用层大多不怎么依赖确定时间或确定时序,但是底层硬件相关的可就不一样了,否则 cpu 为啥都有依赖高精度晶振
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1011 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 19:30 · PVG 03:30 · LAX 12:30 · JFK 15:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.