View
39
Download
0
Category
Preview:
DESCRIPTION
Tout ou presque sur Dynamic Memory. Jérôme Mombelli - Christophe Dubos - Fabrice Meillon Architectes Infrastructure Microsoft F rance. Objectif de la session. Répondre aux questions A quoi cela sert-il ? Comment cela fonctionne-t-il ? Comment le mettre en œuvre ?. Agenda. - PowerPoint PPT Presentation
Citation preview
2
Tout ou presque sur Dynamic Memory
Jérôme Mombelli - Christophe Dubos - Fabrice Meillon Architectes InfrastructureMicrosoft France
3
Objectif de la sessionRépondre aux questions
A quoi cela sert-il ?Comment cela fonctionne-t-il ?Comment le mettre en œuvre ?
4
AgendaVirtualisation et mémoire
Pour une efficacité technico-économique accrue
Dynamic MemoryArchitecture et concepts
Mise en œuvreRecommandations et bonnes pratiques
Synthèse
5
VirtualisationA la recherche de la configuration matérielle idéaleLa 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/SDimensionner uniquement en fonction des pics n’est pas optimal
Les évolutions technologiques et économiquesNe se produisent pas de façon uniforme CPU, mémoire, stockage…De plus en plus le facteur limitant est la mémoire
ConstatL’allocation dynamique des ressources matérielles est indispensable, notamment en ce qui concerne la gestion de la mémoire en environnement virtuel
6
AgendaVirtualisation et mémoire
Pour une efficacité technico-économique accrue
Dynamic MemoryArchitecture et concepts
Mise en œuvreRecommandations et et bonnes pratiques
Synthèse
7
Hyper-V Dynamic MemoryL’essentiel en une slide
8
Hyper-V Dynamic MemoryPrincipales caractéristiques
Une évolution des mécanismes de gestion de la mémoire spécifiques à Hyper-VPermet de redimensionner (augmenter/réduire) dynamiquement la mémoire physique utilisée par chaque machine virtuelleDisponible avec Windows Server 2008 R2 SP1 et Microsoft Hyper-V Server 2008 R2 SP1
9
DemoDynamic Memory en action
10
Hyper-V Dynamic Memory Prérequis
Partition parenteWindows Server 2008 R2 SP1Microsoft Hyper-V Server 2008 R2 SP1
Machines virtuelles32-bit ou 64-bitWindows Server 2003 & 2003 R2, 2008 & 2008 R2
Service Pack 1 au sein des VMs pour Windows Server 2008 R2Service Pack 2 au sein des VMs pour Windows Server 2003 / 2008
Windows Vista & Windows 7Editions Enterprise & UltimateService Pack 2 au sein des VMs pour Vista
11
DynamicMemory VSP
WindowsKernel
DynamicMemory VSC
VMVirtual
MemoryManager
Partition parent Partitions enfants
Kernel Mode: Ring 0
User Mode: Ring 3
Hyper-V
Virtualization Stack
VM WorkerProcesses
VMMSApplications
Hardware
Fournisseur:
Windows
OEM
Windows Server2008 R2 SP1
VMX Root operation
VMBus
Memory Balancer
Memory Balancer Interface
GMOMemory Manager
DM VDEV
Dynamic Memory
Architecture
12
Composants au sein de la partition parente
Dynamic Memory VSPReçoit les données de pression mémoire du VSC et les redirige vers le Memory Balancer
Memory BalancerEnregistre la pression mémoire dans la partition parent ainsi que dans chaque machine virtuelleLorsque 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 VSPLorsqu’une quantité suffisante de mémoire a été libérée, elle est ajoutée aux machines en ayant besoin
13
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 VSCInstallé 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 ballonMesure la pression sur la mémoire au sein des machines virtuelles et la communique au VSP
14
Fonctionnement au sein de la partition enfantLa mémoire est ajoutée/supprimée via un driver VMBUS
(synthetic memory driver)Utilisant des techniques de type “hot add” pour ajouter la RAMUtilisant des techniques de type “memory ballooning” pour supprimer la RAM
Virtual Dynamic Memory device
15
DemoConfiguration deDynamic Memory
16
Principaux paramètres de configuration des VMs
Chaque VM dispose de ses propres paramètres
17
Startup RAMMémoire physique attribuée initialement par Hyper-V à la VMDoit correspondre au minimum à la quantité de mémoire nécessaire au système pour démarrer
Maximum RAMMémoire physique maximale attribuable par Hyper-V à la VMValeur par défaut 64 GB
Memory BufferQuantité de mémoire que Hyper-V doit réserver comme margeValeur par défaut 20%
Memory WeightPriorité d’accès de la VM à la ressource mémoire
Hyper-V Manager
18
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
19
Assigned MemoryMémoire physique attribuée par Hyper-V à une VMNécessairement comprise entre les valeurs Min et Max des propriétés de mémoire dynamique de la VM
Memory DemandMémoire totale Commited au sein de la VM à un instant TPeut être supérieure à l’Assigned Memory dans ce cas on utilise le fichier de pagination de la VM
Memory Status : Ok, Low, WarningOk: Assigned Memory > Memory Demand + Memory BufferLow: Assigned Memory < Memory Demand + Memory BufferWarning: Assigned Memory < Memory Demand
Hyper-V Manager
20
Hyper-V Dynamic MemoryPrincipaux paramètres Hyper-V Manager
Assigned Memory = Total Physical Memory
Assigned Memory = Total Physical Memory
Memory Demand = System Commit
Memory Demand = System Commit
21
Fonctionnement - GénéralitésActivable 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 serviceLa 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
22
Fonctionnement - Ajout de mémoireLa 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 “HotAdd Enlightenment”
Court-circuitant le pilote pour les objets mémoireIndiquant directement au Memory Manager la nouvelle quantité de mémoire disponible via des API
API rendues disponibles pour les éditions Standard & WebUniquement pour les instances virtuelles
23
DemoDynamic Memoryvue de la VM
24
Hyper-V Dynamic 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
25
Fonctionnement - Suppression de mémoire
La technologie de ballooning au sein de chaque VMIndique 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/zero list
Le VSC appelle une fonction du Memory Manager pour allouer la mémoire à partir de la free/zero list
26
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 Ballooned ne sont pas strictement équivalentsUne demande de lecture de mémoire ballooned peut ne pas être satisfaite avec de la mémoire driver locked
27
Notion de pressionExprimée en %
735 268
788 024= 93%
Current Commit ChargePhysical Memory
Niveau depression=
93% de pression signifie La machine virtuelle utilise 93% de lamémoire qui lui est assignéeElle dispose d’une marge de 7%
Si la pression est supérieure à 100%La machine virtuelle pagine de manière excessiveLa marge disponible est négative
Current Commit Charge Physical memory
28
Hyper-V Dynamic MemoryNotion de plage de pression
Minimum (ex 78%) Maximum (ex 81%)Pression courante (ex 80%)
Chaque machine virtuelle dispose d’une plage de pression, bornée par une valeur minimum et maximumLorsque 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 plageLe 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
29
Distribution de la mémoireLa mémoire distribuée aux machines virtuelles dépend
De la mémoire physique de la machine hôteDe la consommation mémoire totale des différentes VMsDes valeurs Minimum et Maximum de chaque VMDu 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
30
Distribution de la mémoireLorsqu’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 rapideSi suffisamment de mémoire du Buffer est disponible elle l’obtientEtape 2 Sinon, il essaye de la fournir depuis de la mémoire physiqueSi suffisamment de mémoire physique est disponible elle l’obtientEtape 3 Sinon, le GMO demande au Memory Balancer de retirer de la mémoire aux autres VMs et 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’obtientEtape 4 En dernier ressort la VM utilise son Pagefile
31
Notion de Memory BufferChaque 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 Current Commit
11 - Memory buffer (%)
- 1 x Current Commit (MB)( )Memory Buffer (MB) =
Current Commit Charge Memory buffer
32
Exemple de calcul du Memory BufferCurrent Commit Charge: 735 MBMemory Buffer: 10%
Memory Buffer (MB)(1 / (1 - 0,1) - 1) x 735 MB = 81 MB
Mémoire cible pour la VM735 + 81 MB = 816 MB
Current Commit Charge
Memory Buffer
33
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éeLa 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é
VM Weight Memory Buffer Memory Status
VM1 High 5% Warning
VM2 Low 80% Ok
34
VM1Maximum RAM: 4980 MBMemory Buffer: 5%Priorité: High
Committed Memory: 5533 MBMémoire physique allouable: -10%
Mémoire cible: 5824 MB(1 / (1 - 0,05) - 1) x 5533 = 5824 MB
Assigned Memory: 4231 MBPénalité: 1593 MB (27.35%)
5824 MB - 4231 MB = 1593 MB
VM2Maximum RAM: 4096 MBMemory Buffer: 80%Priorité: Low
Committed Memory: 1243 MBMémoire physique allouable: 69%
Mémoire cible: 4972 MB(1 / (1 - 0,80) - 1) x 1243 = 4972 MB
Assigned Memory: 1690 MBPénalité: 3232 MB (65.00%)
4972 MB - 1690 MB = 3232 MB
Exemple d’impact du buffer et de la priorité
35
DemoDynamic Memoryen pratique
36
AgendaVirtualisation et mémoire
Une approche technico-économique
Dynamic MemoryArchitecture et concepts
Mise en œuvreRecommandations et bonnes pratiques
Synthèse
37
Ajustement fin des valeurs - Startup RAMCorrespond à la quantité de mémoire initiale (et minimum)
allouée à une VMChoisir une valeur suffisamment basse pour optimiser la ratio de consolidation tout en permettant au système de démarrerIl existe des valeurs recommandées pour différents systèmes
RecommandationUtiliser 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 clustersSi 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
38
Ajustement fin des valeurs - Maximum RAMCorrespond à la quantité de mémoire maximale
potentiellement allouée à une VMParamétré par défaut à 65535 MB
RecommandationNe 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 plusDans 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 clustersCette valeur n’a aucun impact
39
Ajustement fin des valeurs - Memory BufferCorrespond à la marge définie pour absorber les faibles
oscillationsConfiguré à 20% par défautPrise en compte des modifications sans redémarrage
RecommandationNe pas modifier la valeur par défaut
Quand dévier des recommandationsOn 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 quandLa VM a une faible priorité et vous voulez vous assurer que des VMs de plus haute priorité disposent de la mémoire nécessaire
40
Ajustement fin des valeurs - Memory WeightCorrespond à la priorité utilisée en cas de redistribution de
la mémoire entre les VMsUne 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 faiblePriorité plus faible = Pénalité plus élevée
Prise en compte des modifications sans redémarrage
RecommandationNe pas modifier la valeur par défaut
Quand dévier de la recommandationOn peut envisager de l’augmenter quand
On souhaite favoriser une VM vs les autres lors de la redistribution
On peut envisager de la diminuer quandDes VMs moins critiques hébergées sur la même machine hôte que des VMs critiques
41
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éfautPrise en compte des modifications via redémarrage du système
RecommandationNe 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 performancesConfiguré via une clé de registre
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\VirtualizationValeur: MemoryReserve, Type: DWORD, Donnée: Mémoire en MB
42
Considérations liées au PagefileAvec Dynamic Memory 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
RecommandationNe pas modifier le comportement par défaut
Quand dévier de la recommandationNous cherchons encore…., si vous trouvez : contactez nous
43
Deux groupes de compteurs de performance sont disponibles au niveau des machines hôtes Hyper-VHyper-V Dynamic Memory Balancer
Fournit des compteurs liés au Memory Balancer s’exécutant dans la partition parenteLes compteurs sont centrés sur
La mémoire disponible au niveau de la machine hôte pour son usageLes opérations d’ajout/suppression réalisées par le Memory
Balancer
Suivi des performances
44
Hyper-V Dynamic Memory VMFournit des compteurs liés à l’usage de la mémoire dans les machines virtuelles en cours d’exécutionChaque VM dispose de son propre jeu de compteursLes compteurs sont centrés sur
La mémoire disponible au sein de la VMLa mémoire ajoutée/supprimée de la VMLa pression de mémoire rencontrée par la VM
Suivi des performances
45
Suivi des performances
46
Administration en mode script via WMIWMI Provider:
root\virtualizationMsvm_VirtualSystemSettingData class
Propriété Paramètre UI Valeurs
DynamicMemoryEnabled Dynamic Radio Button True, False
Reservation Startup RAM 8 - 65536
Limit Maximum RAM 8 - 65536
Weight Priority 1 - 1000
TargetMemoryBuffer Memory Buffer 5 - 95
47
Les signes qui ne trompent pasSuite à 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 pasTester 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 satisfactionVé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 performancesVérifier le niveau moyen de pression, tester l’augmentation de Root Reserve
48
Quelques retours sur Dynamic Memory
VDI Windows 70
20
40
60
80
100
120
140
Sans SP1avec SP1
40% de densité en plus!
Serveur virtuel0
1
2
3
4
5
6
7
8
Sans SP1avec SP1
Jusqu’à 75% de densité en plus!
49
AgendaVirtualisation et mémoire
Une approche technico-économique
Dynamic MemoryArchitecture et concepts
Mise en œuvreRecommandations et bonnes pratiques
Synthèse
50
Hyper-V Dynamic MemoryEn synthèse
Dynamic Memory est un mécanisme de sur-souscription de la mémoire physique
Dynamic Memory 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’OSIl utilise les primitives d’ajout de mémoire à chaud disponibles avec les différents OS au sein des VMs
Recommended