为什么 Android 模拟器的嵌套虚拟化速度非常慢?

Raf*_*elo 5 virtualization android kvm virtual-machine

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

当我在 ubuntu 20.04 guest 虚拟机(在 ubuntu 20.04 主机上)内启动 Android 模拟器时,它警告我,我处于嵌套虚拟化中,因此速度会很慢。但它的速度低得令人痛苦,而不仅仅是缓慢。启动进入 Android 需要 10 分钟,是的,所有系统都是 x86_64,甚至是 android 映像。

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

我在有 16 个核心的 Ryzen 7 2700x 上尝试了同样的操作,我将所有核心都给了虚拟机,并将 AMD GPU 传递给了它,Android 模拟器也慢得令人痛苦。

为什么?

小智 1

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

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

anbox.io

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