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