赞
踩
我们可以用虚拟机运行多系统,这在多系统开发和本地调试网络应用很有用,也可以解决运行其他系统软件的需求。比如,我想在linux上玩英雄联盟,用wine的方法由于反TP软件已不被支持而不行,唯一的方法是运行Windows系统虚拟机,这就需要虚拟机提供良好的3d性能。(我的机子是i7-7500u 940mx 8G,以下都是测试数据基于此)。
qemu-kvm可以只用于Linux平台是linux内核的虚拟机,并且灵活性很大,唯一不足是运行winows虚拟机性能并不好,尤其是虚拟3d性能支持不佳(virgl驱动只被linux支持,windows系统需额外编译且只有opengl),当然,qemu-kvm可以用硬件虚拟化技术(包括vGPU)也可以用pci直通,可以进行intel核显虚拟化(igvt)缺点是配置复杂,在桌面版上由于virt-manager的连接方式性能受限。如果你是运行linux虚拟机可以使用qemu-kvm,但若运行windows虚拟机最好不要用它,除非需要配置igvt和显卡直通。
virtualbox是开源虚拟机平台,由于其开源特性可以很好地定制化,尤其适合Android系统的虚拟机。virtualbox相比于qemu-kvm,各方面性能都更好(很好的2d性能以及可接受的3d性能)。virtualbox的缺陷是3d性能不佳,仅支持到DirectX9以及OpenGL3.0且支持特性不完整,优点是2d性能强悍(能有约50%主机性能,但是2d性能仅能用于windows系统)。
vmware是闭源软件,一般用vmware workstation或player,现在用vmware player 16即可(桌面需求的功能都有了,快照还是不被支持),它对比于virtualbox主要是3d性能提升,但2d性能较差。它支持到opengl3.3和DirectX11,最大8G虚拟显存可以发挥独显的作用,经测试性能大约是原来的50%左右(理论性能更高约66%),可以配置桥接网络。推荐使用桥接网络,运行命令:
- cd /usr/lib/vmware/bin
- sudo ./vmware-netcfg
配置桥接网络,只选择有网络连接的一个网络硬件。这样,虚拟机和主机都可以进行联网了,注意,主机可能需要重新连接网络。推荐在虚拟机中使用桥接网络,这样才能用于网络环境的开发测试和与主机互访。
经过测试,可以知道vmware workstation比player的虚拟机性能好一点,应该是workstation可以更好的优化设置,实际上应该都是player运行虚拟机系统。
vmware workstation 16 的设置:(仅讲重要的)
处理器设置,处理器数量根据实际情况设置(不要因为是超线程就设为2),处理器核心数设置为实际每个处理器的线程数即可,注意workstation的调度单位是线程(对应虚拟逻辑处理器),它不能区分超线程,受操作系统限制CPU的性能不能达到最优。在kvm中却可以绑定物理CPU来提高性能。注意处理器总核心数不能超过实际的逻辑处理器数。然後是虚拟化引擎设置,实际上vmware workstation必须使用硬件辅助虚拟化(我这里没有选择其他虚拟化引擎的选项,默认就是硬件辅助虚拟化了),虚拟化Intel VT-x/EPT or AMD-V/RVI,这是强制使用Intel或AMD的CPU虚拟化技术并给虚拟机提供虚拟化功能以允许嵌套虚拟化,虚拟化CPU性能计数器,这是为了在虚拟机里面进行性能分析而启用以提供准确的CPU性能计数器(一组寄存器),一般不需要准确的CPU性能计数器,虚拟化IOMMU(IO内存管理单元),直接内存映射而已,与CPU虚拟化配套,启用以允许虚拟机的IO嵌套虚拟化,注意以上三项都会影响性能,如非必要就不要开启,嵌套虚拟化会有大约8%性能损失,而虚拟机CPU相比于物理CPU就有约8%性能损失(实际吞吐量变化不大,性能损失是相对的),如果不经过操作系统调度而是hypervisor就能极为接近物理机。简单讲,如果要在虚拟机里运行虚拟机就打开这三项。
vmware workstation的2d性能很差仅有不到1/4,而3d性能有1/2,但需要运行在独显上,它不支持显卡直通和pci直通。相反qemu-kvm支持pci直通,可以独占一个完整的显卡以发挥最大性能。
在我的机子上,没法配置独显直通(因为我的笔记本独显不具备视频输出功能),而配置核显虚拟化直通,由于是用virt-manager显示图形界面(这里存在一些问题)会导致性能下降,实测约有50%的物理核显性能,这与Intel官方的90%以上性能相差很大,由于独显游戏性能比核显强,所以我的机子更适合vmware workstation。
如果是Linux平台的Linux虚拟机,可以考虑用qemu-kvm,通过性能调优可以得到更好的性能,不调优则是三种里面性能最差的。
如果是追求3d性能的话,应该使用vmware workstation,或者说运行Windows虚拟机应该使用vmware workstation以得3d性能。
如果是为了模拟Android系统,应该用virtualbox且进行定制化,使用其半虚拟化技术,一般的安卓模拟器就是这样来的,而如果要跨指令集模拟则还是用qemu虚拟机,另外听说virtualbox可以运行黑苹果系统(没有试过)。
如果为了打游戏就用Windows虚拟机,在有多块视频输出卡(可以独立安装驱动而不依赖于核显)情况下,推荐用qemu-kvm配置显卡直通(需要注意的是N卡驱动存在防直通的策略,不过可以破解),这是获取最好GPU性能的方法,而且有完整的GPU支持。如果仅有一个intel核显或独显性能不给力,就使用qemu-kvm配置核显虚拟化。其他情况就使用vmware workstation,也能获取较好的游戏性能。
如果为了打安卓系统的游戏,推荐在vmware里win虚拟机嵌套一个安卓模拟器,3d性能可以达到1/4,推荐使用网易Mumu模拟器,不要用星云引擎(兼容性差且并不快),其他模拟器可能会导致虚拟机崩溃(不要设置虚拟CPU数过大,一定要留一个以上线程给主系统使用)。麟卓软件(xDroid)可以在Linux上用容器运行安卓软件,但存在一些问题。也可以用核显虚拟化运行安卓x86系统,这里推荐qemu-kvm运行bliss os系统,但是它对国产软件适配性不佳。
另外,提一下性能可以说最好的虚拟机平台Xen,和Hyper-V类似,是基于虚拟层上运行所有操作系统(包含主系统),一般这类虚拟机有更高的性能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。