tout ou presque sur dynamic memory

51

Upload: nerita

Post on 08-Feb-2016

36 views

Category:

Documents


0 download

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

TRANSCRIPT

Page 1: Tout ou presque sur  Dynamic  Memory
Page 2: Tout ou presque sur  Dynamic  Memory

2

Tout ou presque sur Dynamic Memory

Jérôme Mombelli - Christophe Dubos - Fabrice Meillon Architectes InfrastructureMicrosoft France

Page 3: Tout ou presque sur  Dynamic  Memory

3

Objectif de la sessionRépondre aux questions

A quoi cela sert-il ?Comment cela fonctionne-t-il ?Comment le mettre en œuvre ?

Page 4: Tout ou presque sur  Dynamic  Memory

4

AgendaVirtualisation et mémoire

Pour une efficacité technico-économique accrue

Dynamic MemoryArchitecture et concepts

Mise en œuvreRecommandations et bonnes pratiques

Synthèse

Page 5: Tout ou presque sur  Dynamic  Memory

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

Page 6: Tout ou presque sur  Dynamic  Memory

6

AgendaVirtualisation et mémoire

Pour une efficacité technico-économique accrue

Dynamic MemoryArchitecture et concepts

Mise en œuvreRecommandations et et bonnes pratiques

Synthèse

Page 7: Tout ou presque sur  Dynamic  Memory

7

Hyper-V Dynamic MemoryL’essentiel en une slide

Page 8: Tout ou presque sur  Dynamic  Memory

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

Page 9: Tout ou presque sur  Dynamic  Memory

9

DemoDynamic Memory en action

Page 10: Tout ou presque sur  Dynamic  Memory

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

Page 11: Tout ou presque sur  Dynamic  Memory

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

Page 12: Tout ou presque sur  Dynamic  Memory

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

Page 13: Tout ou presque sur  Dynamic  Memory

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

Page 14: Tout ou presque sur  Dynamic  Memory

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

Page 15: Tout ou presque sur  Dynamic  Memory

15

DemoConfiguration deDynamic Memory

Page 16: Tout ou presque sur  Dynamic  Memory

16

Principaux paramètres de configuration des VMs

Chaque VM dispose de ses propres paramètres

Page 17: Tout ou presque sur  Dynamic  Memory

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

Page 18: Tout ou presque sur  Dynamic  Memory

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

Page 19: Tout ou presque sur  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

Page 20: Tout ou presque sur  Dynamic  Memory

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

Page 21: Tout ou presque sur  Dynamic  Memory

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

Page 22: Tout ou presque sur  Dynamic  Memory

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

Page 23: Tout ou presque sur  Dynamic  Memory

23

DemoDynamic Memoryvue de la VM

Page 24: Tout ou presque sur  Dynamic  Memory

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

Page 25: Tout ou presque sur  Dynamic  Memory

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

Page 26: Tout ou presque sur  Dynamic  Memory

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

Page 27: Tout ou presque sur  Dynamic  Memory

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

Page 28: Tout ou presque sur  Dynamic  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

Page 29: Tout ou presque sur  Dynamic  Memory

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

Page 30: Tout ou presque sur  Dynamic  Memory

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

Page 31: Tout ou presque sur  Dynamic  Memory

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

Page 32: Tout ou presque sur  Dynamic  Memory

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

Page 33: Tout ou presque sur  Dynamic  Memory

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

Page 34: Tout ou presque sur  Dynamic  Memory

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é

Page 35: Tout ou presque sur  Dynamic  Memory

35

DemoDynamic Memoryen pratique

Page 36: Tout ou presque sur  Dynamic  Memory

36

AgendaVirtualisation et mémoire

Une approche technico-économique

Dynamic MemoryArchitecture et concepts

Mise en œuvreRecommandations et bonnes pratiques

Synthèse

Page 37: Tout ou presque sur  Dynamic  Memory

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

Page 38: Tout ou presque sur  Dynamic  Memory

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

Page 39: Tout ou presque sur  Dynamic  Memory

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

Page 40: Tout ou presque sur  Dynamic  Memory

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

Page 41: Tout ou presque sur  Dynamic  Memory

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

Page 42: Tout ou presque sur  Dynamic  Memory

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

Page 43: Tout ou presque sur  Dynamic  Memory

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

Page 44: Tout ou presque sur  Dynamic  Memory

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

Page 45: Tout ou presque sur  Dynamic  Memory

45

Suivi des performances

Page 46: Tout ou presque sur  Dynamic  Memory

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

Page 47: Tout ou presque sur  Dynamic  Memory

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

Page 48: Tout ou presque sur  Dynamic  Memory

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!

Page 49: Tout ou presque sur  Dynamic  Memory

49

AgendaVirtualisation et mémoire

Une approche technico-économique

Dynamic MemoryArchitecture et concepts

Mise en œuvreRecommandations et bonnes pratiques

Synthèse

Page 50: Tout ou presque sur  Dynamic  Memory

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

Page 51: Tout ou presque sur  Dynamic  Memory