none
Comment calculer la mémoire avec cluster Hyper V. RRS feed

  • Discussion générale

  • Bonjour,

    J'ai un problème pour bien analyser l'utilisation de la mémoire d'un noeud de cluster hyper V.

    J'ai 128Go sur le noeud.

    Le total de mes VMs démarrées est de 88go (obtenu en ajoutant les contenus "Ram de démarrage" dans les paramètres des vm dans la console de gestion du cluster à basculement)

    Dans le moniteur de ressource de l'host il m'indique 127 000 Mo utilisés.

    Mais si je fais la somme de la colonne validation (ko) pour tout les processus j'ai 8.2 Go qui correspond apparemment à la mémoire reservée pour les processus en cours.

    128-8.2-88=31

    Ma question est donc par quoi sont utilisés les 31Go manquants et surtout comment puis je analyser cela , ai-je fait une erreur d'analyse ?

    D'avance merci


    jeudi 6 février 2020 16:14

Toutes les réponses

  • Si tu regarde la partie mémoire du moniteur de ressources ça donne quoi ?
    vendredi 7 février 2020 10:56
  • La partie mémoire physique utilisée m'indique 127Go cependant si je fait la somme de toute les mémoires attribués au divers processus et la mémoire réservée pour les vms,. Il me manque une 30ène de giga. 

    Dans le moniteur de ressource il y a 4 colonnes pour la mémoire validation(ko) Plage de travail(ko) Partageable(Ko) Privé(ko). pour ma somme j'ai utilisé la colonne validation(ko).


    • Modifié Carony vendredi 7 février 2020 11:27
    vendredi 7 février 2020 11:27
  • Bonjour Caroni

    foreach ( $node in ( Get-ClusterNode ))
    {
        $processors =  gwmi -ComputerName $node -ns root\virtualization\v2 MSvm_Processor
        $NumLogicalCPUs = @($processors | Where-Object{ $_.ElementName.toLower().Contains( "logical processor")  }).count
        $NumVirtualCPUs = @($processors | Where-Object{ $_.ElementName.toLower() -eq "processor"  }).count
    
    $nodememory = (Get-WmiObject -ComputerName $node Win32_PerfRawData_PerfOS_Memory).AvailableMBytes
    
    $sum=0
    get-vm -computername $node | foreach { $sum = $_.memoryassigned + $sum}
    $xx = $sum/1000000000
    
    write-host "on Host $node VMs occupied  Memory $xx GB"
    write-host " Host $node : AvailableMemory $nodememory MB "
    Write-host "Host $node : CPU utilization $NumVirtualCPUs of $NumLogicalCPUs"
    }

    En ce qui te concerne, pas de pb. Tu as bien 31 Go de libre. De toutes façons, L'hyperviseur (Hyper-v) refuserait de démarrer des VMS s'il n'a pas assez de RAM physique pour faire ... contrairement aux Esx de VMware. La position de MS est : pas d'over-provisionning sur la RAM. VMWare a une position inverse : Pas assez de RAM, je vais swapper sur disque ... avec la perte de performance qui va avec. Je fais ici abstraction des autres mécanismes qui permettent d'optimiser la RAM réellement occupée entre plusieurs VMs (balloning).

    Nota : Les lignes de code (récupérées sur Le Net, pas d'environnement de dispo sous la main) font appel à WMI, mais tu peux utiliser CIM si tu préfères. En ce basant sur ce code, tu pourras faire un script qui produira un "Zoli" rapport, le planifier éventuellement même, et l'envoyer à qui de droit régulièrement.

    Cordialement

    Olivier

    vendredi 7 février 2020 16:10
  • Justement j'ai du retirer de la mémoire à un vm pour démarrer.

    Merci, je vais tester votre script.

    vendredi 14 février 2020 08:58
  • J'ai bien a peu près 80 Go occupé par les vms et à peu près 4Go de libre sur l'host dixit le powershell.

    Je résume :

    Mémoire physique : 128Go (menu systeme)
    Mémoire utilisé par les vms : 80 Go (obtenu powershell)
    Mémoire disponible : 4Go (obtenu powershell)
    Mémoire utilisée par les processus de l'host : 8Go (obtenu en faisant la somme de la colonne (validation ko) dans le moniteur de ressource.

    Comment savoir dans le détail ce qui utilise la mémoire hors Vms. Avec le moniteur de ressource le total ne correspond pas lorsque je fais la sommes de mémoire utilisées par les processus de l'host (colonne validation(ko)), il manque à peu prêt 36go ?

    Je vais chercher comment obtenir la somme de la mémoire utilisée par les processus, le moniteur de ressource n'affiche peut être pas tout.





    • Modifié Carony vendredi 14 février 2020 12:26
    vendredi 14 février 2020 12:18
  • J'ai fait en powershell, pour obtenir le total de la mémoire physique, j'ai fais la somme de l'attribut "workingset64" pour tout les processus. J'obtiens 6.4Go.

    Qu'est ce qui peut utiliser la mémoire hormis les processus et les vms ?

    mardi 18 février 2020 11:14