slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Tout ou presque sur Dynamic Memory PowerPoint Presentation
Download Presentation
Tout ou presque sur Dynamic Memory

play fullscreen
1 / 51

Tout ou presque sur Dynamic Memory

82 Views Download Presentation
Download Presentation

Tout ou presque sur Dynamic Memory

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Tout ou presque sur Dynamic Memory Jérôme Mombelli - Christophe Dubos - Fabrice Meillon Architectes InfrastructureMicrosoft France

  2. Objectif de la session • Répondre aux questions • A quoi cela sert-il ? • Comment cela fonctionne-t-il ? • Comment le mettre en œuvre ?

  3. Agenda • Virtualisation et mémoire • Pour une efficacité technico-économique accrue • Dynamic Memory • Architecture et concepts • Mise en œuvre • Recommandations et bonnes pratiques • Synthèse

  4. VirtualisationA la recherche de la configuration matérielle idéale • La configuration doit être optimale d’un point du vue technologique et des coûts d’acquisition et d’exploitation • Sur le plan technologique, elle doit prendre en compte 4 caractéristiques : CPU, mémoire, stockage, E/S • Dimensionner uniquement en fonction des pics n’est pas optimal • Les évolutions technologiques et économiques • Ne se produisent pas de façon uniforme CPU, mémoire, stockage… • De plus en plus le facteur limitant est la mémoire • Constat • L’allocation dynamique des ressources matérielles est indispensable, notamment en ce qui concerne la gestion de la mémoire en environnement virtuel

  5. Agenda • Virtualisation et mémoire • Pour une efficacité technico-économique accrue • Dynamic Memory • Architecture et concepts • Mise en œuvre • Recommandations et et bonnes pratiques • Synthèse

  6. Hyper-VDynamic MemoryL’essentiel en une slide

  7. Hyper-VDynamic MemoryPrincipales caractéristiques • Une évolution des mécanismes de gestion de la mémoire spécifiques à Hyper-V • Permet de redimensionner (augmenter/réduire) dynamiquement la mémoire physique utilisée par chaque machine virtuelle • Disponible avec Windows Server 2008 R2SP1 et Microsoft Hyper-V Server 2008 R2 SP1

  8. Demo Dynamic Memory en action

  9. Hyper-V Dynamic Memory Prérequis • Partition parente • Windows Server 2008 R2SP1 • Microsoft Hyper-V Server 2008 R2 SP1 • Machines virtuelles • 32-bit ou 64-bit • Windows Server 2003 & 2003 R2, 2008 & 2008 R2 • Service Pack 1 au sein des VMs pour Windows Server 2008 R2 • Service Pack 2 au sein des VMspour Windows Server 2003 / 2008 • Windows Vista & Windows 7 • Editions Enterprise & Ultimate • Service Pack 2 au sein des VMs pour Vista

  10. VirtualizationStack Fournisseur: Windows Windows Server2008 R2 SP1 VM WorkerProcesses VMMS WindowsKernel OEM DynamicMemoryVSP VMVirtualMemoryManager Hyper-V DynamicMemoryVSC VMBus Architecture Partition parent Partitions enfants Applications Dynamic Memory DM VDEV Memory Balancer Interface GMO Memory Manager Memory Balancer User Mode: Ring 3 Kernel Mode: Ring 0 VMX Rootoperation Hardware

  11. Composants au sein de la partition parente • Dynamic Memory VSP • Reçoit les données de pression mémoire du VSC et les redirige vers le Memory Balancer • Memory Balancer • Enregistre la pression mémoire dans la partition parent ainsi que dans chaque machine virtuelle • Lorsque de la mémoire doit être réallouée, le Memory Balancer commence par initier une libération de mémoire en coordination avec les VSP • Lorsqu’une quantité suffisante de mémoire a été libérée, elle est ajoutée aux machines en ayant besoin

  12. Composants au sein de la partition enfant • Dynamic Memory est disponible pour les machines virtuelles disposant de composants d’intégration • Les systèmes au sein des machines virtuelles et de la partition parente fonctionnent en collaboration • Dynamic Memory VSC • Installé au sein des machines virtuelles à l’installation des IC • Il n’est activé au démarrage de la VM que si la mémoire est configurée en mode allocation dynamique • Implémente les mécanismes d’ajout de mémoire et de ballon • Mesure la pression sur la mémoire au sein des machines virtuelles et la communique au VSP

  13. Fonctionnement au sein de la partition enfant • La mémoire est ajoutée/supprimée via un driver VMBUS (syntheticmemory driver) • Utilisant des techniques de type “hot add” pour ajouter la RAM • Utilisant des techniques de type “memoryballooning” pour supprimer la RAM Virtual Dynamic Memory device

  14. Demo Configuration deDynamic Memory

  15. Principaux paramètres de configuration des VMs Chaque VM dispose de ses propres paramètres

  16. Hyper-V Manager • Startup RAM • Mémoire physique attribuée initialement par Hyper-V à la VM • Doit correspondre au minimum à la quantité de mémoire nécessaire au système pour démarrer • Maximum RAM • Mémoire physique maximale attribuable par Hyper-V à la VM • Valeur par défaut 64 GB • Memory Buffer • Quantité de mémoire que Hyper-V doit réserver comme marge • Valeur par défaut 20% • Memory Weight • Priorité d’accès de la VM à la ressource mémoire

  17. Principaux paramètres Hyper-V Manager Trois nouvelles colonnes permettent un suivi de Dynamic Memory Trois nouvelles colonnes permettent un suivi de Dynamic Memory Trois nouvelles colonnes permettent un suivi de Dynamic Memory

  18. Hyper-V Manager • Assigned Memory • Mémoire physique attribuée par Hyper-V à une VM • Nécessairement comprise entre les valeurs Min et Max des propriétés de mémoire dynamique de la VM • Memory Demand • Mémoire totale Commited au sein de la VM à un instant T • Peut être supérieure à l’Assigned Memory dans ce cas on utilise le fichier de pagination de la VM • Memory Status :Ok, Low, Warning • Ok: Assigned Memory > Memory Demand + Memory Buffer • Low: Assigned Memory < Memory Demand + Memory Buffer • Warning: Assigned Memory < Memory Demand

  19. Hyper-VDynamic MemoryPrincipaux paramètres Hyper-V Manager Assigned Memory = Total Physical Memory Assigned Memory = Total Physical Memory Memory Demand = System Commit Memory Demand = System Commit

  20. Fonctionnement - Généralités • Activable au niveau de chaque machine virtuelle • Alloue aux machines virtuelles la mémoire dont elles ont besoin dans une plage Min/Max plus un buffer • La mémoire est ajoutée/supprimée dynamiquement en fonction de l’utilisation • Sans interruption de service • La bascule entre les modes Static et Dynamic nécessite un redémarrage du système d’exploitation au sein de la VM • La mémoire physique est gérée en pool et distribuée de manière dynamique entre les VMs • En fonction de la mémoire physique disponible et de la priorité d’allocation de chaque VM

  21. Fonctionnement - Ajout de mémoire • La VM démarre avec la quantité de mémoire minimum • Elle est ajoutée à la demande au cours de la “vie” de la VM • La technologie d’ajout à chaud (HotAdd) est utilisée pour ajouter de la mémoire aux machines virtuelles • Cette technologie utilise des triggers ACPI qui déclenchent des événements Plug and Play • Dynamic Memory n’utilise pas directement HotAdd, mais des “HotAddEnlightenment” • Court-circuitant le pilote pour les objets mémoire • Indiquant directement au Memory Manager la nouvelle quantité de mémoire disponible via des API • API rendues disponibles pour les éditions Standard & Web • Uniquement pour les instances virtuelles

  22. Demo Dynamic Memoryvue de la VM

  23. Hyper-VDynamic MemoryFonctionnement - Ajout de mémoire L’ajout de mémoire par Dynamic Memory accroit la mémoire physique visible par la machine virtuelle L’ajout de mémoire par Dynamic Memory accroit la mémoire physique visible par la machine virtuelle

  24. Fonctionnement - Suppression de mémoire • La technologie de ballooningau sein de chaque VM • Indique au système que la mémoire virtuelle est toujours disponible tout en libérant les pages occupées en physique • Le Global Memory Object (GMO) • Conserve une carte de cette mémoire de façon à pouvoir la réutiliser au cours d’une future opération d’ajout • La mémoire est retirée quand elle n’est plus utilisée au sein de la VM • La mémoire est alors libérée, paginée ou placée en free/zerolist • Le VSC appelle une fonction du Memory Manager pour allouer la mémoire à partir de la free/zerolist

  25. Fonctionnement - Suppression de mémoire • Dans la partition parente la mémoire est “driver locked” après avoir été “ballooned” de la VM • Cependant, Driver Locked et Balloonedne sont pas strictement équivalents • Une demande de lecture de mémoire ballooned peut ne pas être satisfaite avec de la mémoire driver locked

  26. Notion de pression Current Commit Charge Physicalmemory • Exprimée en % Niveau depression = 735 268 788 024 • 93% de pression signifie • La machine virtuelle utilise 93% de lamémoire qui lui est assignée • Elle dispose d’une marge de 7% • Si la pression est supérieure à 100% • La machine virtuelle pagine de manière excessive • La marge disponible est négative = 93% Current Commit ChargePhysical Memory

  27. Hyper-VDynamic MemoryNotion de plage de pression • Chaque machine virtuelle dispose d’une plage de pression, bornée par une valeur minimum et maximum • Lorsque la pression courante se situe au sein de la plage de pression, aucune mémoire n’est ajoutée ou enlevée • Le processus de suppression de la mémoire démarre lorsque la pression franchit à la baisse la valeur minimum de la plage • Le processus d’ajout de la mémoire démarre lorsque la pression franchit à la hausse la valeur maximum de la plage • La plage de pression est calculée à partir des données de pression historiques de chaque machine virtuelle Minimum (ex 78%) Maximum (ex 81%) Pression courante (ex 80%)

  28. Distribution de la mémoire • La mémoire distribuée aux machines virtuelles dépend • De la mémoire physique de la machine hôte • De la consommation mémoire totale des différentes VMs • Des valeurs Minimum et Maximum de chaque VM • Du paramètre de priorité (Memory Weight) • Du paramètre de marge (Memory Buffer) • La distribution de la mémoire est réalisée par le Memory Balancer situé dans la partition parente • L’algorithme utilisé a pour objectif d’allouer à chaque VM uniquement la mémoire nécessaire

  29. Distribution de la mémoire • Lorsqu’une machine virtuelle a besoin de plus de mémoire un processus en 4 étapes est utilisé • Etape 1 Le GMO essaye de la fournir depuis le Memory Buffer où elle est pré-allouée pour une disponibilité plus rapide • Si suffisamment de mémoire du Buffer est disponible elle l’obtient • Etape 2 Sinon, il essaye de la fournir depuis de la mémoire physique • Si suffisamment de mémoire physique est disponible elle l’obtient • Etape 3 Sinon, le GMO demande au Memory Balancer de retirer de la mémoire aux autres VMset de la redistribuer • Plus la priorité d’une VM est importante, moins elle est pénalisée lors de la ré-allocation de la mémoire • Si suffisamment de mémoire peut être libérée elle l’obtient • Etape 4 En dernier ressort la VM utilise son Pagefile

  30. Notion de Memory Buffer • Chaque VM dispose d’une quantité de mémoire cible • Prenant en compte le Memory Buffer (défaut 20% des propriétés) • Mémoire Cible (MB) = Current Commit (MB) + Memory Buffer (MB) • Le Memory Buffer est lui-même basé sur le CurrentCommit Current Commit Charge Memory buffer ( ) 1 1 - Memory buffer (%) Memory Buffer (MB) = - 1 x Current Commit (MB)

  31. Exemple de calcul du Memory Buffer Current Commit Charge • Current Commit Charge: 735 MB • Memory Buffer: 10% • Memory Buffer (MB) • (1 / (1 - 0,1) - 1) x 735 MB = 81 MB • Mémoire cible pour la VM • 735 + 81 MB = 816 MB Memory Buffer

  32. Notion de priorité (Weight) • La priorité détermine la façon dont les VM sont impactées lorsque de la mémoire doit être redistribuée • La priorité ne garantie pas la disponibilité de la mémoire • A titre d’exemple dans le cas ci-dessus, la VM avec le plus haut niveau de priorité dispose de moins de mémoire disponible que la VM de moindre priorité

  33. Exemple d’impact du buffer et de la priorité VM1 Maximum RAM: 4980 MB Memory Buffer: 5% Priorité: High Committed Memory: 5533 MB Mémoire physique allouable: -10% Mémoire cible: 5824 MB (1 / (1 - 0,05) - 1) x 5533 = 5824 MB Assigned Memory: 4231 MB Pénalité: 1593 MB (27.35%) 5824 MB - 4231 MB = 1593 MB • VM2 • Maximum RAM: 4096 MB • Memory Buffer: 80% • Priorité: Low • Committed Memory: 1243 MB • Mémoire physique allouable: 69% • Mémoire cible: 4972 MB • (1 / (1 - 0,80) - 1) x 1243 = 4972 MB • Assigned Memory: 1690 MB • Pénalité: 3232 MB (65.00%) • 4972 MB - 1690 MB = 3232 MB

  34. Demo Dynamic Memoryen pratique

  35. Agenda • Virtualisation et mémoire • Une approche technico-économique • Dynamic Memory • Architecture et concepts • Mise en œuvre • Recommandations et bonnes pratiques • Synthèse

  36. Ajustement fin des valeurs - Startup RAM • Correspond à la quantité de mémoire initiale (et minimum) allouée à une VM • Choisir une valeur suffisamment basse pour optimiser la ratio de consolidation tout en permettant au système de démarrer • Il existe des valeurs recommandées pour différents systèmes • Recommandation • Utiliser la valeur recommandée en fonction du système • Quand dévier de la recommandation ? • En cas d’application définissant son utilisation de la mémoire au démarrage et ne prenant pas en compte les modifications • Considérations liées aux clusters • Si le total des minimums dépasse la mémoire physique de l’hôte certaines VMs ne pourront pas démarrer en cas de bascule

  37. Ajustement fin des valeurs - Maximum RAM • Correspond à la quantité de mémoire maximale potentiellement allouée à une VM • Paramétré par défaut à 65535 MB • Recommandation • Ne pas modifier la valeur par défaut • Quand dévier de la recommandation ? • Les machines virtuelles 32-bits n’utilisant pas PAE ne savent pas exploiter plus de 4 GB, inutile de leur allouer plus • Dans un scénario de type hébergement/Cloud où les profils de machines virtuelles sont tarifés en fonction d’une quantité de mémoire maximum inférieure à 64 GB • Considérations liées aux clusters • Cette valeur n’a aucun impact

  38. Ajustement fin des valeurs - Memory Buffer • Correspond à la marge définie pour absorber les faibles oscillations • Configuré à 20% par défaut • Prise en compte des modifications sans redémarrage • Recommandation • Ne pas modifier la valeur par défaut • Quand dévier des recommandations • On peut envisager de l’augmenter quand • On héberge des charges de travail avec des pics particulièrement fréquents et importants • On peut envisager de le diminuer quand • La VM a une faible priorité et vous voulez vous assurer que des VMs de plus haute priorité disposent de la mémoire nécessaire

  39. Ajustement fin des valeurs - Memory Weight • Correspond à la priorité utilisée en cas de redistribution de la mémoire entre les VMs • Une priorité plus élevée ne garantit pas que la totalité de la mémoire demandée sera allouée • Priorité plus élevée = Pénalité plus faible • Priorité plus faible = Pénalité plus élevée • Prise en compte des modifications sans redémarrage • Recommandation • Ne pas modifier la valeur par défaut • Quand dévier de la recommandation • On peut envisager de l’augmenter quand • On souhaite favoriser une VM vs les autres lors de la redistribution • On peut envisager de la diminuer quand • Des VMsmoins critiques hébergées sur la même machine hôte que des VMs critiques

  40. Ajustement fin des valeurs - Root Reserve • Correspond à la quantité de mémoire physique réservée à l’utilisation de la partition parente • Calculée de manière automatique par défaut • Prise en compte des modifications via redémarrage du système • Recommandation • Ne pas modifier le fonctionnement par défaut • Quand dévier de la recommandation ? • Si et uniquement si une analyse poussée des performances démontre qu’une modification améliore les performances • Configuré via une clé de registre • HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization • Valeur: MemoryReserve, Type: DWORD, Donnée: Mémoire en MB

  41. Considérations liées au Pagefile • Avec DynamicMemory les machines virtuelles continuent à pouvoir utiliser le Pagefile • Calculé de manière automatique par défaut par le système d’exploitation au sein des VMs en fonction de la taille de la mémoire physique • Recommandation • Ne pas modifier le comportement par défaut • Quand dévier de la recommandation • Nous cherchons encore…., si vous trouvez : contactez nous

  42. Suivi des performances • Deux groupes de compteurs de performance sont disponibles au niveau des machines hôtes Hyper-V • Hyper-VDynamic Memory Balancer • Fournit des compteurs liés au Memory Balancer s’exécutant dans la partition parente • Les compteurs sont centrés sur • La mémoire disponible au niveau de la machine hôte pour son usage • Les opérations d’ajout/suppression réalisées par le Memory Balancer

  43. Suivi des performances • Hyper-VDynamic Memory VM • Fournit des compteurs liés à l’usage de la mémoire dans les machines virtuelles en cours d’exécution • Chaque VM dispose de son propre jeu de compteurs • Les compteurs sont centrés sur • La mémoire disponible au sein de la VM • La mémoire ajoutée/supprimée de la VM • La pression de mémoire rencontrée par la VM

  44. Suivi des performances

  45. Administration en mode script via WMI • WMI Provider: • root\virtualization • Msvm_VirtualSystemSettingData class

  46. Les signes qui ne trompent pas • Suite à l’activation de Dynamic Memory certains signes indiquent que les paramètres peuvent être ajustés • Tous les services au sein d’une VM ne démarrent pas • Tester l’augmentation du paramètre Startup RAM de la VM • Les perfs d’une application au sein d’une VM ne donnent pas satisfaction alors que celles de la VM sont bonnes • Tester l’augmentation du paramètre Startup RAM de la VM • Les perfs d’une VM ne donnent globalement pas satisfaction • Vérifier le niveau moyen de pression de la VM, si une autre valeur que celle par défaut a été utilisée pour Maximum RAM tester son augmentation • Les perfs d’une VM ne donnent ponctuellement pas satisfaction • Vérifier le niveau max de pression, tester l’augmentation du Memory Buffer • Le système dans la partition parente a de mauvaises performances • Vérifier le niveau moyen de pression, tester l’augmentation de Root Reserve

  47. Quelques retours sur Dynamic Memory 40% de densité en plus! Jusqu’à 75% de densité en plus!

  48. Agenda • Virtualisation et mémoire • Une approche technico-économique • Dynamic Memory • Architecture et concepts • Mise en œuvre • Recommandations et bonnes pratiques • Synthèse

  49. Hyper-VDynamic MemoryEn synthèse • DynamicMemory est un mécanisme de sur-souscription de la mémoire physique • DynamicMemory propose un partage de la mémoire mais pas des pages mémoire entre les VMs • Dynamic Memory n’engendre pas un niveau de pagination supplémentaire • Dynamic Memory est indépendant de l’OS • Il utilise les primitives d’ajout de mémoire à chaud disponibles avec les différents OS au sein des VMs