我已经问过这个问题了,但是有人建议我在SF上问这个问题,就这样吧。
https://stackoverflow.com/questions/3010753/wastage-of-resources-in-virtualization
我不知道这里是否适合提出这个问题。不过,我希望是这样。
今天早些时候在寻找VPS时,我试图了解每个容器在后台是如何工作的。记住,操作系统使用一个系统上的大部分内存和电源,不会在同一台机器上拥有多个操作系统,这意味着更多的资源浪费。
例如,如果我在一个专用框上运行centOS,并且它正在运行,那么就让我们假设有20个后台OS级进程。然后,我去安装一个虚拟化平台,在同一个系统中再安装5台centOS虚拟机,这些虚拟机与主机操作系统完全相同。这不意味着重复这20个过程6次吗?因此,在内部,上下文切换发生在120个进程之间,而不是20个进程之间?
进一步的注释:下面是我所想的一个例子:我有一个主从配置,用于长时间运行的cpu +内存密集型进程,可以分发到4台机器上。假设进程在这4台机器上运行,比如1Gh CPU和1GG RAM,我从集群中每小时获得400个结果(假设一台机器有100个结果)。现在我有了一台更大的机器(比如说4 Gz和4 Gz),它上有4台虚拟主机,有1 Gz CPU和1G RAM。这个配置会给我来自这4个虚拟主机的相同的每小时100个结果吗?
发布于 2010-06-11 08:12:04
客人机器中的大多数进程几乎在整个时间都处于睡眠状态。您可以使用ps命令检查多少进程处于休眠状态。在现代虚拟机管理程序中,使用Linux上的KSM技术在虚拟机之间共享重复内存页。VMware也有同样的特点。这几天对超光速不太确定。
总之,虚拟化有开销,但没有您想象的那么多。
发布于 2010-06-11 07:47:05
首先,“操作系统在系统上使用大部分内存和电源的事实”,这远远不是事实,实际上对大多数服务器来说是非常遥远的。
但要回答你的问题是肯定的,这确实意味着所有这些进程都在进行,但我们的想法是,对于当今的多核CPU,单个操作系统几乎不可能每一个都使用所有可用的资源,那么为什么不使用它来虚拟化呢?如果您有一个单一的旧CPU,那么肯定它会减慢一切,但这不是发生在大多数情况下。
发布于 2010-06-11 08:31:48
我看到您的问题中有关OS占用的部分已经得到了答复,因此我将只在这里讨论性能考虑。
您将无法获得完全相同的性能水平。然而,我不能肯定地告诉你,表演到底是好是坏。
简而言之:它基本上都取决于可用的资源,以及每种类型的资源被使用的程度。
https://serverfault.com/questions/150341
复制相似问题