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

2020-07-14 21:10:49 +08:00
 just1
cpu 是 i5-8400,六个核心,如果正常单核 100%,占用在 25%左右。

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



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





这是虚拟化带来的性能损耗吗?好像有点大
3307 次点击
所在节点    VirtualBox
5 条回复
vk42
2020-07-14 21:42:23 +08:00
看你虚拟机内的负载是啥了,纯 CPU 负载在硬件虚拟化下没什么损耗应该,但如果是 I/O 负载就比较依赖虚拟机软件实现或者硬件 VT-D 的支持了
just1
2020-07-14 22:12:33 +08:00
@vk42 #1 几乎没有磁盘读写,全是网络请求,也暂时无入库操作。我在宿主机跑一样的程序,cpu 使用百分比有了明显下降...
vk42
2020-07-14 22:40:01 +08:00
@just1 网络也是 I/O 啊,但看你贴的截图网络流量很小? NAT 之类的很耗 host 资源的,我记得 virtualbox 也是支持 virtio-net,不过不太清楚 win 平台上能不能用,你可以查一下
singerll
2020-07-14 23:19:13 +08:00
一般 kvm 的虚拟机的核和物理机的核不是对应关系。是按照物理机总频率进行的限制。比如 cpu 共 8 核,每核 1g,就是总共 8g 。虚拟机可能默认一个核所能占用的最大资源是 0.5g ,分 8 核就是默认可占用物理 cpu 的 4g 资源。实际由于进程调度优化和应用程序自身调度可能会有浮动。vbox 具体怎么限制的不太清楚。
just1
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,基本就是一一对应了

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

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

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

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

© 2021 V2EX