我刚听说 Xen VPS 比开放式 VPS 服务器消耗的内存少很多,而且我有大量可用内存可以扩展!这是真的吗?
答案1
它不会消耗更少的内存,只是对虚拟化和内存管理采取了非常不同的方法。
在 Xen 上运行时,您将拥有一个独立内核。这意味着您将能够在主机上运行具有不同内核的不同类型的操作系统。使用 OpenVZ,您将与主机共享一个内核。这意味着只有运行与主机相同内核版本的虚拟机才可供使用。
现在这意味着使用 Xen 您有交换空间,而使用 OpenVZ 您没有。Xen 会限制您使用给定的可用内存。一旦超过该数量,您就会开始交换。它的工作方式与普通物理机的工作方式非常接近。
OpenVZ 有保证的内存,这些内存是您的,您可以始终依赖它们;另一方面,OpenVZ 没有交换,那么当您达到内存限制时会发生什么?将会出现突发内存。这些内存是主机上未使用的内存,暂时分配给您的 VM。
现在问题来了,当 OpenVZ 服务器超卖时,可能没有太多内存未被使用。现在,当您使用可突发内存,而另一个用户想要使用其保证内存时,就会发生糟糕的事情。您的可突发内存将被拿走,您会发现自己处于内存完全耗尽的情况。这意味着 OOM 杀手将经过并终止您的进程。
如果 OpenVZ 没有超卖,就不会出现任何问题,它比 Xen 更快,但也有其局限性(例如,在 OpenVZ VM 上运行 openvpn 是不可能的,因为你需要在内核中设置标志)。另一方面,Xen 会更可预测一些,但如果你超出了它的内存限制,你将开始交换,事情会变得慢很多。(阅读:过度交换)。
如果没有超卖的话,OpenVZ 的整体性能比 Xen 要好。不存在所谓内存更多或更少的问题,只是对内存的管理方式不同而已。