我有许多从物理服务器创build的虚拟机。 其中一些(在我看来)有不适当数量的处理器 – 例如,我们有一个Web应用程序,只能在内部访问,在分配有4个处理器的VM上运行。 这是我们虚拟机的最高规格,但也有一些我怀疑是过度引用的。
据我了解,这可能会导致性能下降,因为在为该VM分配处理器时间时,pipe理程序等待主机上有4个处理器空闲。 尝试在主机之间迁移虚拟机也会导致问题。 这些公平的假设?
看着服务器本身,我看不出有什么理由需要4个处理器。 恰巧它所安装的物理服务器有那么多的处理器。
所以问题是 – 在这个虚拟机上减less处理器的数量有什么风险?
一些细节:
我们在8核心和20Gb的服务器上运行VMware ESX 3.5。 上例中的VM有4个处理器和3Gb RAM。 虚拟机上的服务器操作系统是Windows Server 2003 Standard SP2(不是R2)。
唯一严重的并发症可能来自多核(即2个或更多)到单核。 Windows 2000,XP和2003(我不确定vista,2008或7)在多核上使用的是不同于单核的内核。 也就是说,它可能只是某种performance的惩罚,而不是一直吹到的东西。
我会检查,以确保任何关键的应用程序也没有得到处理器亲和力设置 – 这可能会毁了你的一天。 看到这里: http : //forums.whirlpool.net.au/archive/735180或https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-6168870 html的
编辑:同样会是Linux的,但SMP核心问题只是性能而不是全面的问题之一。 另一方面,linux更容易永久地设置处理器关联。 见http://www.cyberciti.biz/tips/setting-processor-affinity-certain-task-or-process.html
是的,您的假设是正确的:ESX调度程序需要有4个可用内核,才能调度具有4个vCPU的虚拟机的执行情况,所以如果只有2个或3个虚拟机可用,它将不会运行,无论虚拟机实际上是要使用它们; 来宾操作系统可能只有一个线程正在运行,但是如果没有足够的可用空闲内核,ESX调度程序仍然无法运行虚拟机。
减lessvCPU的数量通常是一个安全的操作,但这很大程度上取决于客户操作系统,这实际上需要应对(虚拟)硬件更改。 最近的Windows和Linux系统通常不会有任何问题。