V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
whyorwhynot
V2EX  ›  程序员

虚拟机图形性能真的没救了吗?

  •  
  •   whyorwhynot · 2022-05-15 23:18:03 +08:00 · 7465 次点击
    这是一个创建于 955 天前的主题,其中的信息可能已经有所发展或是发生改变。

    将办公用的物理机迁移为虚拟机( 8124m 分配了 20 个核心,64GB 内存,未开 vmware 3D 加速)后使用,一直觉得界面很卡,窗口开的越多越卡,输入法打字都卡,但是 cpu 占用率始终是 5%以下,内存也才用了不到 22GB ,磁盘也没有什么读写。

    怀疑是图形性能出了问题,写了一个 tkinter 小程序,循环设置 10000 次进度条进度,记录时间消耗。 发现当前运行环境需要 9-13s 才能完成,于是继续测试

    • 关闭 9 个 wps 窗口,耗时降低到 8.13s 左右
    • 关闭了 50 个不同的 chrome 窗口,耗时降到了 7.59s 左右
    • 再关闭了 50 个 chrome 窗口,关闭了有道词典,耗时降到了 4.57s 左右
    • 开一个新的 server2019 虚拟机测试,耗时只需要 1.5s
    • 开启一个新的 win10 虚拟机,开启 8GB 显存 3D 加速,刚开机测试耗时 3.87s ,开启了三个聊天软件窗口,耗时立马上升到了 6.11s ( vmware16 这 3D 加速也不怎么顶用?而且还有渲染 bug )
    • 真机 i7 11700 核显,开了 389 个不同的 chrome 窗口,耗时只需要 1.56s

    测下来的感觉就是虚拟机的图形性能真的很差,根本不适合开太多窗口进行办公,可是 vmware 开启 3d 加速貌似是目前虚拟机最强图形性能了(是不是配个 3090 就好多了呢?),除了显卡直通,虚拟机的图形性能还有救吗?

    14 条回复    2022-07-04 16:07:23 +08:00
    sean10
        1
    sean10  
       2022-05-15 23:26:00 +08:00
    以前有看到 intel 提供的 gvt-g 能力 , 显卡虚拟化. 不知道你的场景有没有用.

    以前捣鼓的时候, 如果是服务器, 通过这个可以让宿主机的显卡让多台虚拟机都使用到这张集成显卡, 基本能达到有 intel 显卡的水平.
    Buges
        2
    Buges  
       2022-05-15 23:29:57 +08:00 via Android
    显卡虚拟化 vGPU 直通 /显卡直通+lookingglass 那样的图形 API 捕获+shm 取回画面应该是理论上最合适的。
    除此以外,如果是 Linux/kvm + qemu 虚拟 linux guest 的话可以用 virtio 的图形驱动,据说性能很好。
    Windows/hyper-v 虚拟 Windows guest 的话,可以修改引导直接真机启动虚拟机系统,打游戏什么的可能这种方法是最合适的了。
    再其次就是 parallels/VMware workstation 这样的专业桌面虚拟化产品提供的图形驱动了,性能倒是不差,但高负载还是不行。
    再然后 VirtualBox 的图形驱动和 qxl 等开源实现,基本上能保证日常操作流畅,视频游戏之类就不用想了。
    最后就是 rdp/vnc/x 转发等远程协议了,网络好的时候能不卡就不错了。
    12101111
        3
    12101111  
       2022-05-15 23:34:45 +08:00
    Windows 跑 windows 虚拟机性能最强的是 hyper-v, 只要是 1809 之后的 Windows10/11 都可以, 直接穿透 dx12 内核驱动, 虚拟机安装相同的用户态图形驱动程序, 绝对比任何第三方 Windows 虚拟机性能好

    这个项目可以自动化 https://github.com/jamesstringerparsec/Easy-GPU-PV
    BeautifulSoap
        4
    BeautifulSoap  
       2022-05-15 23:40:17 +08:00
    3L 的 hyper-v 黑科技 vGPU 了解下,虚拟机下的图形性能和宿主几乎一模一样。宿主显卡给力的话直接在虚拟机里打 3A 游戏都不是问题。

    如果 LZ 虚拟机系统是 linux 系,直接用 wsl2 就行,用的同样的黑科技。
    alanying
        5
    alanying  
       2022-05-15 23:44:53 +08:00
    @12101111
    @BeautifulSoap

    突然想把盗版游戏放 hyper-v 里面了
    darklights
        6
    darklights  
       2022-05-15 23:49:07 +08:00
    @12101111 挑显卡不,1660s 。现在用 VMware workstation 测软件,是真的受不了,什么东西都慢半拍还有 bug 。而且听说 hyper-v 虚拟网卡、宿主客机交互不如 vmware 方便,一直没去搞。
    ruidoBlanco
        7
    ruidoBlanco  
       2022-05-16 06:29:59 +08:00   ❤️ 3
    暂时除了直通是没救的。

    你的 CPU 是 11 代的,所以不再支持 GVT-g 而是硬解支持 SR-IOV 。SR-IOV 好是好,但是 intel 的 Linux 驱动 i915 还没到位,根本不能用。VMware 情况不大清楚,但是应该差不多。具体哪年哪月能好,天知道。因为 i915 的驱动都是 intel 自己的人在做的。

    12 代的 Alder Lake 也是坑,performance 核心支持的 AVX512 指令集,在 efficiency 核心上不支持,导致为了让程序不跑出乱子,干脆在 firmware 里禁用了 AVX512 指令集。

    9 代往前才支持 GVT-g ,然而直到 9 代都会受 meltdown 和 spectre 的影响,要想全部性能,加 mitigations=off ,否则性能打 9 折。

    10 代 CPU 什么鬼,没人聊,好像 GVT-g 和 SR-IOV 都没指望???

    我是买了个 11 代 NUC 不能开 vGPU 才知道有这坑的。
    TheSixWings
        8
    TheSixWings  
       2022-05-16 10:31:06 +08:00 via iPhone
    对 11 代不支持 Windows Guest 的 vGPU
    v2da
        9
    v2da  
       2022-05-16 11:29:45 +08:00
    楼主说配个 3090 是不是好点,我就有 3090 ,可是实际上没有好很多。。。
    whyorwhynot
        10
    whyorwhynot  
    OP
       2022-05-16 18:47:26 +08:00
    @v2da 那就好,不用花钱白折腾了。。。
    whyorwhynot
        11
    whyorwhynot  
    OP
       2022-05-16 19:08:44 +08:00
    @12101111 限制挺多的,貌似还不稳定,倒是可以折腾折腾。。
    whyorwhynot
        12
    whyorwhynot  
    OP
       2022-05-16 19:24:59 +08:00
    @ruidoBlanco 我这 8124m 没核显直接没救了。。
    jsq2627
        13
    jsq2627  
       2022-05-16 22:06:12 +08:00
    @darklights hyper-v 最大的麻烦在于不支持 usb passthrough ,对于想把游戏或者办公主力放到虚拟机的人来说并不方便
    hanssx
        14
    hanssx  
       2022-07-04 16:07:23 +08:00
    vGPU 不是 NVIDIA 才叫的吗?“Intel 核显的技术叫 GVT-g ,NVIDIA 技术叫 vGPU 。”
    如果 12 代 CPU 不支持 GVT-g 的话,买个支持 vGPU 的显卡?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5462 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:30 · PVG 16:30 · LAX 00:30 · JFK 03:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.