托管 SQL Server 的 VM 上的专用资源

Ken*_*her 8 sql-server vmware virtualisation

我的理解是,使用 VM 的一大好处是您可以在主机上的虚拟机之间共享资源。因此,您可以拥有一个拥有 120 个 CPU 的主机,并在其上放置 5 个虚拟机,每个虚拟机拥有 32 个 CPU。额外的 CPU 在 VM 之间“共享”,主机根据需要动态分配 CPU。内存也是一样。

我也明白,对于装有 SQL Server 的 VM 来说,这是一个很大的禁忌,但我的 VM 管理员不同意。有没有人以一种或另一种方式有任何证据或文件?

我不知道这是否重要,但我们正在使用 VMWare。

Bre*_*zar 15

您要问的是,“如果我们过度使用 CPU 可以吗?”

没关系,直到您开始遇到与 CPU 消耗相关的性能瓶颈。同样的答案也适用于网络过度使用 - 这不像您在主机中放置 5 个单独的 10Gb 以太网卡,并为每个 VM 专用一张卡。虚拟化就是过度承诺,​​在资源可用性和资源需求之间徘徊。

一般来说,您不想过度使用内存,因为 SQL Server 会主动使用您提供给它的任何内存。与其让 VM 分页到主机的磁盘,不如逐个进行 VM 分析以确定哪些 VM 可以使用较少的内存,然后开始使用较少的内存配置它们。


Aar*_*and 13

我看到动态分配某些资源的问题是它会导致不可预测的性能。报告查询 x 昨天有 32 个 CPU 可用,并在 4 分钟内运行,今天它只有 24 个,而且花费的时间要长得多。您还可以看到来宾等待其他内核可用时的延迟。

Jonathan Kehayias 在这里给出了一些关于过度订阅 CPU 和内存的实际警告(坦率地说,我比典型的 VM 管理员更相信他的经验和建议,没有冒犯他们,但我怀疑他对组合有更直接的经验):


小智 11

我的理解是,某种程度的 CPU 过度使用可能是完全可以的,但这完全取决于所有来宾的工作负载要求。查看 David Klee 的博客,了解大量优秀的 VM 信息。具体http://www.davidklee.net/articles/sql-server-articles/cpu-overcommitment-and-its-impact-on-sql-server-performance-on-vmware/对 CPU 过度使用的解释及其影响在 SQL Server 上。

内存过度使用完全是另一种动物,一般来说,如果 VM 主机运行 SQL Server,则不应过度使用内存。我将再次使用 David Klee 作为参考。http://www.davidklee.net/2013/11/04/lock-pages-in-memory-in-sql-server-on-vmware-why-or-why-not/在那里他解释了内存超过-承诺。

希望这可以帮助。