CPU et vCPU : différences et fonctionnement
CPU, qui signifie Central Processing Unit, s’apparente au « cerveau » de tout ordinateur. En effet, la fonction du CPU consiste à traiter toutes les opérations logiques nécessaires à la bonne exécution des tâches affectées par l’utilisateur.
Qu’est-ce qu’un processeur ?
Dans un environnement physique, un CPU est le centre d’exécution d’un ordinateur. Il reçoit des instructions, des programmes et des applications, récupère des données de la RAM (Random Access Memory) où il va stocker des éléments, exécute toutes les parties qu’il peut, et délègue ce qu’il ne peut pas faire à d’autres composants matériels. Puis il passe au prochain cycle d’instructions. Enfin, il transmet la tâche terminée à la carte graphique et à la mémoire, avec la procédure à suivre.
La vitesse à laquelle un processeur fonctionne dépend de plusieurs facteurs :
- De sa vitesse d’horloge soit le nombre d’opérations que le processeur peut gérer en une seconde. Cette unité de mesure va s’exprimer en en Hertz (Hz) ou Gigahertz (GHz). Ainsi, un processeur de 4GHz va réaliser 4 milliards d’opérations à la seconde. Pour les constructeurs de Microprocesseur (Intel, AMD etc.) il s’agit d’une valeur particulièrement importante. Certains types de CPU, comme les processeurs de signal numérique permettent d’effectuer des calculs complexes en un coup d’horloge.
- La performance du CPU ne va pas dépendre seulement de sa fréquence. Son architecture externe, soit ses connexions avec les autres composants de la carte mère, et en particulier avec la mémoire, va s’avérer très importante (à noter que le CPU contient aussi une mémoire intégrée, les registres).
- A l’origine, la conception des CPU ne permettait de traiter qu’une “action” à la fois. Pour contourner cette problématique, plusieurs “coeurs” ont été intégré afin de traiter plusieurs opérations en parallèle (même si certains types de programmes n’ont pas l’utilités d’un traitement parallèle). De même, grâce à la technique du double pipeline d’instructions, le CPU peut traiter deux ou trois instructions par cycle.
Qu’est-ce qu’un cœur de Processeur ?
Un cœur, ou core, est le « cerveau » d’un processeur. Il reçoit des instructions et effectue des calculs ou des opérations pour leur exécution.
À l’origine, les processeurs ne possédaient qu’un seul cœur, ne pouvant traiter qu’une seule instruction. Afin d’augmenter les performances, les fabricants ajoutèrent des cœurs supplémentaires au sein d’un même circuit intégré. Un processeur dual-core, à deux cœurs, peut ainsi exécuter deux processus différents en même temps.
Les processeurs modernes ont plusieurs cœurs qui leur permettent d’effectuer plusieurs tâches simultanément, certains cœurs étant capables de prendre en charge plusieurs threads pour une meilleure efficacité du processeur.
La plupart des processeurs grand public ont 4, 6 ou 8 cœurs (les publicités l’indiquent généralement – dual-core, quad-core, etc.), selon le prix. Les processeurs de serveur ont généralement plus de 32 cœurs de processeur, fonctionnant ensemble en même temps.
CPU et vCPU
Le CPU dans le cloud, nommé vCPU, est un peu différent. Un vCPU représente une part de traitement du processeur physique attribué à une machine virtuelle (VM) particulière. Donc un processeur virtuel peut ainsi être perçu comme le temps de traitement passé sur le CPU. L’utilisation du temps de traitement d’un CPU d’une machine physique par une machine virtuelle sera donc proportionnelle au nombre de vCPU alloué. Toutefois, l’augmentation du nombre de vCPU accroît le temps de traitement CPU disponible, il convient de bien respecter un certain ratio VCPU/CPU. Un sous–dimensionnement du CPU risque d’engendrer une difficulté d’allocation du temps de traitement aux différentes VM. Le vCPU s’intègre dans une offre infrastructure cloud en tant que service.
Comment fonctionne un vCPU ?
Les serveurs virtuels et leur allocation de ressources sont contrôlés par ce qu’on appelle un hyperviseur, en charge de la virtualisation. L’hyperviseur utilise une partie des ressources informatiques du processeur physique et l’affecte à un processeur virtuel, lui-même affecté à une machine virtuelle spécifique. Par défaut, les machines virtuelles se voient allouer un vCPU chacune. Cependant, la distribution de temps de traitement par les serveurs physiques peuvent être distribués dynamiquement selon le niveau de charge. Ainsi, la puissance de traitement non utilisée sera redirigée vers une VM active.
Quel ratio ratio VCPU/CPU respecter ?
Théoriquement, si vous avez de petites machines virtuelles qui utilisent peu de temps de CPU, vous pouvez facilement obtenir 20 à 30 machines virtuelles à partir d’un serveur à 8 cœurs. Cependant, si vous disposez d’un serveur de base de données, vous aurez beaucoup moins de machines virtuelles à partir de ce même serveur à 8 cœurs. Tout est question d’utilisation et d’allocation des ressources.
Quoi qu’il en soit, il doit toujours y avoir suffisamment de processeurs virtuels disponibles pour prendre en charge le nombre de processeurs virtuels attribués à une seule machine virtuelle, sinon la machine virtuelle ne démarrera pas.