Ma compréhension est que l'un des grands avantages de l'utilisation d'une machine virtuelle est que vous pouvez partager des ressources entre les machines virtuelles sur un hôte. Vous pouvez donc avoir un hôte avec 120 CPU et y mettre 5 VM avec 32 CPU chacune. Les processeurs supplémentaires sont "partagés" entre les machines virtuelles, l'hôte affectant les processeurs de manière dynamique en fonction des besoins. Idem pour la mémoire.
J'ai également compris qu'il s'agissait d'un grand non-non pour les machines virtuelles qui hébergent des serveurs SQL, mais mes administrateurs de machines virtuelles ne sont pas d'accord. Quelqu'un at-il des preuves ou des documents d'une manière ou d'une autre?
Je ne sais pas si c'est important mais nous utilisons VMWare.
la source
could
devait être partagée. Lorsque j'ai posé la question, j'ai réalisé que cela pourrait très bien être différent pour les processeurs et la mémoire, mais que les deux étaient une option.Réponses:
Ce que vous demandez, c'est: "Est-ce que ça va si nous sur-engageons les CPU?"
Ce n'est pas grave jusqu'à ce que vous commenciez à rencontrer des goulots d'étranglement liés aux performances du processeur. La même réponse vaut également pour la sur-engagement réseau - ce n'est pas comme si vous mettiez 5 cartes Ethernet 10 Gb distinctes dans l'hôte et que vous dédiez une carte par VM. La virtualisation, c'est avant tout un engagement excessif et faire la distinction entre la disponibilité des ressources et les besoins en ressources.
De manière générale, vous ne voulez pas surcharger la mémoire, car SQL Server utilisera activement la mémoire que vous lui présenterez. Plutôt que de laisser la page des VM sur le disque de l'hôte, il vaut mieux faire une analyse VM par VM pour déterminer quelles VM peuvent vivre avec moins de mémoire, puis les configurer avec moins de mémoire pour commencer.
la source
Le problème que je vois avec l'allocation dynamique de certaines ressources est qu'il conduit à des performances imprévisibles. La requête de rapport x avait 32 CPU disponibles hier et a fonctionné en 4 minutes, aujourd'hui elle n'en a que 24 et cela a pris beaucoup plus de temps. Vous pouvez également voir la latence lorsque l'invité attend que d'autres cœurs soient disponibles.
Jonathan Kehayias donne des avertissements pratiques sur la surabonnement du processeur et de la mémoire ici (et franchement, je fais confiance à son expérience et à ses conseils plus qu'à un administrateur de machine virtuelle typique, cela ne les offense pas, mais je soupçonne qu'il a une expérience beaucoup plus directe avec la combinaison):
la source
Ma compréhension est qu'un certain niveau de sur-engagement du processeur peut être parfaitement OK, mais cela dépend totalement des exigences de charge de travail de tous les invités. Consultez le blog de David Klee pour de nombreuses bonnes informations sur les VM. Spécifiquement http://www.davidklee.net/articles/sql-server-articles/cpu-overcommitment-and-its-impact-on-sql-server-performance-on-vmware/ pour l'explication du sur-engagement CPU et son impact sur SQL Server.
Le sur-engagement de mémoire est un autre animal entièrement et en général, l'hôte VM ne doit pas être sur-engagé sur la mémoire s'il 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-why-or-why-not/ où il explique les effets de la mémoire sur -engagement.
J'espère que cela t'aides.
la source