Ma compréhension est que l'un des gros avantages de l'utilisation d'un VM est que vous pouvez partager des ressources entre les machines virtuelles d'un hôte. Vous pouvez donc avoir un hôte avec 120 processeurs et mettre 5 VMS sur Il avec 32 cpus chacun. Les processeurs supplémentaires sont "partagés" entre la machine virtuelle avec l'hôte attribuant des processeurs dynamiquement en fonction de la nécessité. Même pour la mémoire.
J'ai aussi compris que ceci est un grand non-non pour les VMS qui house serveurs SQL, mais mon VM Admins en désaccord. Quelqu'un a-t-il une preuve ou une documentation d'une manière ou d'une autre?
Je ne sais pas si cela compte, mais nous utilisons VMware.
Ce que vous demandez est: "Est-ce que ça va si nous surgagions les processeurs?"
C'est bon jusqu'à ce que vous commenciez à expérimenter des goulots d'étranglement de performances liés à la consommation de la CPU. La même réponse est également vraie avec le surcommandement du réseau. Ce n'est pas comme si vous proposez 5 cartes Ethernet distinctes de 10 Go dans l'hôte et consacrer une carte par virgule VM. La virtualisation est tout sur l'accomplissement et la marche entre la disponibilité des ressources et les besoins en ressources.
De manière générale, vous ne voulez pas surmonter sur la mémoire, car SQL Server utilisera activement la mémoire que vous y présentez. Plutôt que de laisser la page VMS au disque de l'hôte, vous ferez mieux de faire une analyse VM-BY-VM pour déterminer quels VMS pourraient vivre avec moins de mémoire, puis la configurer avec moins de mémoire pour commencer.
Le problème que je vois avec une allocation dynamique de certaines ressources est qu'il conduit à des performances imprévisibles. Reporting Query X avait 32 processeurs disponibles hier et couru en 4 minutes, il n'y a aujourd'hui que 24 et il a pris beaucoup de temps. Vous pouvez également voir la latence car l'invité attend que d'autres noyaux deviennent disponibles.
Jonathan Kehayias donne quelques avertissements pratiques sur la sous-souscription de la CPU et de la mémoire ici (et franchement, je fais confiance à son expérience et à son avis plus qu'un typique VM admin, sans délit, mais je soupçonne qu'il a un Beaucoup plus d'expérience directe avec la combinaison):
Je crois comprendre que certains niveaux d'engagement de la CPU peuvent être parfaitement acceptables, mais cela dépend totalement des exigences de la charge de travail de tous les invités. Découvrez le blog de David Klee pour beaucoup de bons VM Informations. Spécifiquement http://www.davidklee.net/articles/sql-server-articles/cpu-overCommouverment-Att -Its-Impact-on-SQL-Server-Server-Performance-On-VMware / Pour la CPU Explication d'une explication et son impact sur SQL Server.
L'engagement excessivement de la mémoire est un autre animal entièrement et en général, le VM ne doit pas être sur-engagé à la mémoire si elle exécute des serveurs SQL. Encore une fois, je vais utiliser David Klee comme référence. - http://www.davidklee.net/2013/11/04/LOCK-PAGES-IN-MEMORY-IN-SQL-SERVER-ON-VMWARE-PHY-OR-PHY-NOT/ où il Explique les effets de la surveillance de la mémoire.
J'espère que cela t'aides.