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


8

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

我也了解到,这对于装有SQL Server的VM来说是一个很大的禁忌,但我的VM管理员对此表示不同意见。是否有人以任何一种方式获得任何证据或文件?

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


2
奇怪的是,我们只是在虚拟化可用性组上遇到了随机故障转移的问题。我们在CPU上的预订量超额,准备时间约为8秒。ag侦听器丢失了其群集租约,并会转到另一个HA节点。这里的困难在于,即使错误通常与持续的CPU压力有关,它也不会作为来宾的CPU压力出现。这导致了虚拟化的最大问题-了解发生了什么并信任其他人也可以这样做。
swasheck

Jonathan Kehayias撰写的有关VMware CPU热插拔vNUMA对SQL Server影响的非常不错的博客文章, 作者Jonathan Kehayias
Kin Shah

顺便说一句:它通常不是“内存相同”。在大多数情况下,您共享cpu,但由于为每个VM分配了特定数量的内存,因此不共享此内存。与SQL Server共享cpu可能是确定的,具体取决于所有VM的总cpu负载,但是与SQL Server共享内存在几乎所有情况下都是不好的
MTilsted 2015年

@MTilsted抱歉让您感到困惑。当我说“ Same for memory”时,我的意思could是共享它。当我问这个问题时,我意识到CPU和内存可能完全不同,但这两者都是一个选择。
肯尼斯·费舍尔

Answers:


15

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

在开始遇到与CPU消耗相关的性能瓶颈之前,这​​是没有关系的。对于网络超额使用情况,同样的答案也适用-并不是要在主机中放置5张单独的10Gb以太网卡,而每个VM专用一张卡。虚拟化是关于超负荷使用,并在资源可用性和资源需求之间架起界限。

一般来说,您不希望过度使用内存,因为SQL Server会主动使用您提供给它的任何内存。最好不要逐个进行VM分析,以找出哪些VM可以使用较少的内存,然后再以较少的内存进行配置,而不是让VM分页到主机磁盘。


让我们不要忘记专用和独立物理磁盘的重要性。分别用于Data,LogsTempdb。:)
Chiramisu

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,则VM主机不应在内存上过量使用。我将再次使用David Klee作为参考。http://www.davidklee.net/2013/11/04/lock-pages-in-memory-in-sql-server-on-vmware-why-or-why-not/他在那里解释了内存的影响-承诺。

希望这可以帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.