KVM:VM 的最大内核数和内存量

ddo*_*org 7 ubuntu virtual-machines kvm-virtualization

我有一台带有 16GB RAM 的新 8 核机器。我想使用Ubuntu 和 KVM在其上运行 VM 。除了 SSH 之外,主机上不会运行其他任何东西。

我的问题是我可以用于 VM的最大内核数和 RAM 数是多少。我可以创建 4 个 VM 并为每个 VM 分配 2 个内核和 4GB RAM 吗?主机操作系统是否会遇到此类设置问题?

换句话说,主机运行虚拟机所需的最少内核和 RAM 数量是多少?1 个核心和 1GB 的 RAM 是否足以运行 VM。

dya*_*sny 5

没有最大值,就像内存没有真正的最大值一样。您需要记住以下几点:

  • 对于主机来说,KVM v-CPU 只是 KVM 进程中的一个线程。如果您运行的线程多于物理核心,它们将竞争这些核心,主机调度程序将必须负责为它们提供 CPU 时间
  • 避免将更多 v-CPU 分配给主机中拥有物理核心的单个虚拟机。
  • 不要将 HT 核心视为真正的核心。
  • 如果可能,如果虚拟机上的 CPU 时间至关重要,请不要为正在运行的所有虚拟机分配比物理内核更多的 v-CPU。然而,在不太繁忙的系统上,您可以轻松地过度分配到一些非常疯狂的比率(我见过一个具有 8 个核心的系统,运行 150 个大部分空闲的虚拟机,每个虚拟机有 2 个核心,没有任何问题)

至于RAM分配,这基本上是同样的思路:

  • 虚拟机只是主机的另一个进程,该进程将有一个可以使用的内存限制
  • 如果你尝试使用更多实际拥有的 RAM,你最终会进入交换区,这比 RAM 慢得多
  • KVM 提供了过度分配内存的方法 - 有 balooning 和 KSM 来实现这一点。

因此,话虽如此,您需要考虑您的虚拟机绝对需要什么(不要只为虚拟机提供 4 个核心,因为您可以,给它运行所需的最低限度,如果您发现性能问题,稍后再添加更多)。
小心内存分配——你永远不想以交换结束。


Gio*_*ldo 0

主机系统的开销接近数百MB,您可以在启动时使用 free 命令立即检查它。

无论如何,保留一些空闲内存用于 I/O 缓冲区是一件好事。如果您运行类似的虚拟机,请查看 KSM 来优化内存使用。