Récemment, j’ai rencontré un message bizarre sur un serveur Hyper-V (normal, me diront certains). Une VM refusait de se lancer avec le message « ressources insuffisantes » alors que le serveur hôte disposait clairement de beaucoup de ressources CPU/RAM/Disques disponibles. Finalement, au bout de quelques essais la VM démarrait quand même. J’ai résolu le soucis en diminuant légèrement la mémoire allouée à la VM. Que s’est-il passé ?

En cherchant un peu, je suis tombé sur plusieurs articles qui apportent peut-être une ébauche d’explication.

Connaissez-vous NUMA ? NUMA signifie ‘Non-Uniform Memory Access‘. Il s’agit d’une caractéristique du processeur qui est exploitée dans un environnement multi-CPU. Pour schématiser, pour des raisons de performances, la RAM n’est pas gérée de façon globale par tous les CPU. Elle est divisée en portion égales chacune attribuée en priorité à un CPU. Ainsi, une VM dont les vCPU seront alloués sur un CPU verra sa mémoire allouée dans la mémoire physique réservée à ce CPU.

021611 1249 11 La fête de NUMA ou pourquoi il faut réfléchir un peu avant de créer une VM

Si votre VM utilise plus de mémoire qu’il n’est attribuée au CPU, elle fonctionnera quand même mais les performances risquent d’être dégradées en raison de la négociation qui va s’amorcer avec le second CPU qui gère la mémoire manquante au premier CPU.

Dans l’expérience que je citais plus tôt, je pense que la VM refusait de se lancer immédiatement car elle utilisait plus de RAM que n’en gérait son processeur.

Comme quoi, même si l’hyperviseur fait bien son travail dans la répartition des ressources, il vaut mieux réfléchir avant de donner toutes les ressources à toutes les VM pour un fonctionnement optimal (hein, martial !  icon wink La fête de NUMA ou pourquoi il faut réfléchir un peu avant de créer une VM )

A lire : http://frankdenneman.nl/2010/02/sizing-vms-and-numa-nodes/ & http://blogs.msdn.com/b/virtual_pc_guy/archive/2007/05/16/numa-and-virtual-server.aspx

A propos de Olivier Olejniczak

Olivier Olejniczak a rédigé 424 articles sur ce blog..

Co-Fondateur du site SynerGeek.fr Passionné d'informatique, je m'intéresse plus particulièrement aux technologies de virtualisation et de stockage. J'apprécie la liberté et la quasi-absence de frontières à mon imagination qu'offre l'OpenSource et Linux. Professionnellement, je travaille exclusivement avec les outils Microsoft. Les pieds bien sur terre et ancrés dans le quotidien de l'entreprise, j'aime faire partager mes découvertes et contribuer à un meilleur usage des technologies. Vous aussi, rejoignez-nous sur Synergeek et partagez votre expérience!