【问题标题】:Why nested virtualization for the Android emulator is very very slow?为什么 Android 模拟器的嵌套虚拟化非常慢?
【发布时间】:2021-07-11 19:37:40
【问题描述】:

嵌套 KVM 虚拟化的开销应该很小,但虚拟机内的 Android 模拟器应该是可用的。

当我在 ubuntu 20.04 客户机(在 ubuntu 20.04 主机上)启动 Android 模拟器时,它警告我我处于嵌套虚拟化中,因此它会很慢。但它非常低,不仅仅是慢。开机需要 10 分钟,是的,所有系统都是 x86_64,甚至是 android 映像。

我认为这与 OpenGL 有关,所以我在我的 virt-manager 上启用了 OpenGL 虚拟化,但速度仍然很慢。

我在具有 16 个内核的 Ryzen 7 2700x 上尝试了相同的操作,我将所有内核都分配给了 VM,并将 AMD gpu 传递给它,Android 模拟器也非常缓慢。

为什么?

【问题讨论】:

    标签: android virtual-machine virtualization kvm


    【解决方案1】:

    问题在于 QXL。不知何故,它在新的 Ubuntu 上很慢。使用 VirtIO 视频和可能的 3D 加速

    【讨论】:

      【解决方案2】:

      您可以尝试使用 anbox 代替虚拟机。 性能开销要低得多,因为 anbox 不像 VM,而更像是 wine。用他们自己的话来解释:

      模拟器(如虚拟机)创建一个完整的模拟系统,它有自己的内核等,而 Anbox 在与主机操作系统相同的内核下运行 Android 系统。不需要像 QEMU 这样的仿真层。一切都直接在硬件上运行。这种方法还可以更好地与主机操作系统集成。

      anbox.io

      我得警告你,它有点笨重,而且软件支持不是最好的。 不得不从 github 问题报告中手动安装内核模块,因为它们没有修复焦点 ppa 存储库。 还有一些软件几乎不运行或根本不运行所以jeeaah...

      【讨论】:

        【解决方案3】:

        对于 KVM,可能首先必须启用嵌套虚拟化;最好使用x86 图片:
        https://docs.fedoraproject.org/en-US/quick-docs/using-nested-virtualization-in-kvm/
        即便如此,运行 QEMU 并通过 IP 连接可能更有效。

        【讨论】:

          猜你喜欢
          • 2016-11-23
          • 2019-03-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-27
          • 1970-01-01
          • 2013-09-19
          相关资源
          最近更新 更多