Articles

Affichage des articles associés au libellé scheduling

[vSphere] CPU Scheduling - Part 2

Image
Pour les plus patients, voici enfin la suite de mon article sur le CPU Scheduling :) Co-Scheduling Le « co-scheduling » , de manière générale, permet d’exécuter un ensemble de threads ou processus d’un même groupe en parallèle sur plusieurs CPU afin d’avoir de meilleures performances. Dans le cas de VMware, le but est de faire fonctionner plusieurs vCPU d’une VM en même temps. Hyperthreading Pour assurer de meilleures performances, l’ordonnanceur va distribuer les vCPU d’une VM sur différents pCPU, surtout avec de l’hyperthreading .  Rappelons que lorsque l’hyperthreading est activé sur un serveur ESXi, le nombre de cœurs logiques est égal au  double  du nombre de cœurs physiques.  Cependant il y a une contrainte, à chaque instant un seul thread peut s’exécuter sur un cœur. Si on positionne les 2 vCPU d’une VM sur les 2 threads d’un même cœur, alors à chaque cycle de temps CPU, un seul vCPU pourra s’exécuter. Si cette VM a une fort...

[vSphere] CPU Scheduling - Part 1

Image
Introduction Pour mon 1 er article sur vrun , je souhaite aborder le fonctionnement de l’ordonnanceur CPU sous VMware 5.1 et supérieur. Tout est parti d’une question qu’un client m'a posée: «  Si une VM possède 8 vCPU et que seuls 4 pCPU sont disponibles, la VM peut-elle s’exécuter ?  » Après avoir donné les premiers éléments de réponse au client, je me suis rendu compte qu’il existait en règle générale une mauvaise compréhension du fonctionnement de l’ordonnanceur CPU VMware. J’espère donc que cette suite d’articles vous aidera à y voir un peu plus clair. Terminologie Avant de rentrer dans les explications, voici quelques termes de vocabulaire nécessaires pour la bonne compréhension de cet article :    -  CMP  = une architecture mutli-core (CMP = chip multi-core)    -  pCPU = CPU physique du serveur ESXi     -  vCPU (Virtual CPU) correspond au CPU d’une machine virtuelle. L'hôte ...