VSphere 4.0上的SQL Server性能

我们遇到了一个性能问题,我们无法用我们的VMWare环境来解释,我希望这里有人能帮上忙。 我们有一个使用数据库后端的Web应用程序。 在Windows 2003 R2上,我们在物理节点和虚拟节点之间安装了SQL 2005 Cluster。 这两个物理服务器是相同的2950与2x Xeaon x5460四核CPU和64GB的内存,16GB分配给操作系统。 我们正在为所有群集磁盘使用iSCSI SAN。 问题是,当在重复的压力testing下使用应用程序,将CPU添加到集群节点时,物理节点从1 pCPU扩展到8 pCPU,这意味着我们看到持续的性能提升。 当testing运行Vsphere的节点时,我们预期虚拟性能会达到12%,但是我们仍然可以从1个vCPU扩展到4个vCPU,但是性能会下降,但是当我们达到8个vCPU时,数字比4个vCPU差。 同样,两个节点在硬件,客户操作系统,SQLconfiguration等方面的configuration是相同的,除了系统上的testing外,没有任何stream量。 虚拟服务器上没有其他虚拟机,所以不应该有资源竞争。 我们已经联系了VMWare寻求帮助,但他们并没有真正的提出build议,比如设置SQL Processor Affinity,尽pipe有帮助,但是每个框都有相同的净效应,并且不应该改变我们的结果。 我们已经查看了所有有关VSphere的VMWare SQL Tuning指南,但没有任何好处,请帮忙!

我很犹豫,因为我没有太多具体的支持,但是这可能是你所看到的问题的原因。 我以前听说过(和这个页面支持它),当VM有多个CPU时,VMWare CPU调度比较困难。 对于单个CPU虚拟机,只需要安排一个主机处理器。 但是,当虚拟机有多个虚拟机时,VMWare必须安排多个处理器可用于该虚拟机,这可能需要更长的时间。 随着虚拟机CPU数量的增加,这将变得越来越困难,这意味着虚拟机实际上看起来更糟,因为分配给它的处理器时间越来越难。

另外,我重新阅读你最后的评论,而且我最近在vSphere上也有争议。 另一件你可能想尝试的东西(如果你还没有的话)是增加这个虚拟机的资源分配,即使它是目前唯一的虚拟机。

你有一个非常整洁的设置在这里;-)

vCPU是否被用于最大容量? 什么是CPU等待,CPU就绪和CPU使用情况告诉你的图表?

随着越来越多的vCPU添加到虚拟机中,因为在主机系统上生成更多的开销来pipe理vCPU并将其映射到物理虚拟CPU。 在某些时候,通过添加更多的vCPU,您不会从虚拟机获得更多的性能。

您是否检查iSCSI SAN上是否存在性能问题? 检查graphics磁盘读取和磁盘写入请求,当然还有磁盘读取和写入速率,并将它们与子系统集群成员的比较。

也许有些价值观可以使你指向正确的方向。

仅仅为了澄清一下,您正在使用8核(2 x 4)ESX主机托pipe一个8个vCPU虚拟机,并且看不到第5个和后续vCPU的实际性能增益? 我可以问这个问题:为什么你不使用相同的主机作为物理SQL框? 您已经使用了$ 5-6k的Enterprise Plus许可证,看起来没有任何好处(即使您没有看到性能问题) – 我不理解它。