我查看了这里关于交换空间的许多其他问题,但没有找到真正解决我的具体情况的问题。
我有一台 Ubuntu 9.10 64 位服务器,具有 32GB RAM,作为 KVM 主机系统运行。我在 RAID1 上使用 LVM。
“老式”交换建议建议使用 2xRAM 或 2xRAM+1GB,甚至更多if MEM < 2GB then SWAP = MEM*2 else SWAP = MEM+2GB
。但我就是看不出分配 66GB 的磁盘空间用于交换,这似乎太疯狂了!我认为 4GB 或 8GB 就足够了。
该系统将运行多个 KVM 虚拟服务器。在这种情况下,交换如何工作?我是否应该为主机服务器设置一个交换分区,然后每个虚拟服务器都有自己的 LVM 根和 LVM 交换分区?或者虚拟服务器共享主机的交换?
答案1
严格来说,Linux 不需要任何根本不需要交换 - 尤其是当您有大量 RAM 时。对于 KVM,您需要有足够的内存来支持所有机器。因此,如果您有 20 个 VM,每个 VM 有 1GB RAM,则主机上需要有 20GB RAM。但是,每个 VM 都可以配置自己的交换,例如每个 VM 有 2GB 的交换。这样,每个 VM 都可以管理自己的交换。您可以配置交换性每个单独。
答案2
4GB 就足够了。我不太清楚虚拟服务器的交换空间是如何运作的,但我假设每个虚拟服务器都有自己的交换空间。
在这种情况下,您应该为主机系统留出大约 2GB 的 RAM,或者只留 1GB,具体取决于您看到在分配了大部分内存的机器上使用的内存量。交换非常慢,在您的 RAID-1 系统上,对于如此高端的机器,您永远都不想交换。
附注:您可能需要考虑在 RAID-10 中运行 4 个磁盘,最好是 SAS 驱动器,以便为节点上的所有虚拟服务器提供足够的 I/O,但根据您所运行的内容,这可能不是必需的。