V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Changelog
just1
V2EX  ›  VirtualBox

虚拟机虚拟四核,单核 100%,宿主机实际六核,占用 50%,正常吗

  •  
  •   just1 · 2020-07-14 21:10:49 +08:00 · 3966 次点击
    这是一个创建于 1627 天前的主题,其中的信息可能已经有所发展或是发生改变。
    cpu 是 i5-8400,六个核心,如果正常单核 100%,占用在 25%左右。

    现在用 virtualbox 虚拟 4 核,里面跑的程序单核 100%,其他核心基本没有使用



    宿主机 virtualbox 的 cpu 使用率达到 50%+





    这是虚拟化带来的性能损耗吗?好像有点大
    5 条回复    2020-07-15 02:47:42 +08:00
    vk42
        1
    vk42  
       2020-07-14 21:42:23 +08:00
    看你虚拟机内的负载是啥了,纯 CPU 负载在硬件虚拟化下没什么损耗应该,但如果是 I/O 负载就比较依赖虚拟机软件实现或者硬件 VT-D 的支持了
    just1
        2
    just1  
    OP
       2020-07-14 22:12:33 +08:00
    @vk42 #1 几乎没有磁盘读写,全是网络请求,也暂时无入库操作。我在宿主机跑一样的程序,cpu 使用百分比有了明显下降...
    vk42
        3
    vk42  
       2020-07-14 22:40:01 +08:00   ❤️ 1
    @just1 网络也是 I/O 啊,但看你贴的截图网络流量很小? NAT 之类的很耗 host 资源的,我记得 virtualbox 也是支持 virtio-net,不过不太清楚 win 平台上能不能用,你可以查一下
    singerll
        4
    singerll  
       2020-07-14 23:19:13 +08:00 via Android
    一般 kvm 的虚拟机的核和物理机的核不是对应关系。是按照物理机总频率进行的限制。比如 cpu 共 8 核,每核 1g,就是总共 8g 。虚拟机可能默认一个核所能占用的最大资源是 0.5g ,分 8 核就是默认可占用物理 cpu 的 4g 资源。实际由于进程调度优化和应用程序自身调度可能会有浮动。vbox 具体怎么限制的不太清楚。
    just1
        5
    just1  
    OP
       2020-07-15 02:47:42 +08:00
    @vk42 #3 谢谢,我找到了 https://www.virtualbox.org/manual/ch06.html#network_performance,改了桥接,使用 virio net,虚拟机的 cpu 使用率有了明显降低,虽然还是有 10%的更多占用,估计是无法避免了。

    @singerll #4 嗯,我查了文档,当我将处理器运行峰值设置为 100%时,一个虚拟 cpu 最多可以使用一个实际 cpu,基本就是一一对应了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2579 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 04:17 · PVG 12:17 · LAX 20:17 · JFK 23:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.