17/11/2024

Windows Client

Gérer la charge CPU sous Windows

I. Présentation

Sous Windows, certaines applications peuvent se mettre à prendre toute la charge et la puissance de votre CPU et ainsi ralentir l'ensemble de vos applications rendant impossible leur utilisation. Il faut savoir qu'il est possible de gérer la répartition de la charge et l'allocation des ressources que nous souhaitons donner à une application sous Windows.

Dans ce tutoriel, nous travaillerons avec un logiciel de stress de CPU qui aura pour but de montrer que toutes application peut être contrôlée. Le logiciel utilisé sera CPU Stress MT.

II. Repérer la charge CPU

On doit tout d'abord savoir où récupérer les informations sur l'utilisation de la charge CPU d'une application. Sous Windows, il existe une fenêtre qui est le Gestionnaire des tâches. On peut y accéder de deux manières, soit en faisant un clic droit sur la barre des tâches puis en cliquant sur "Gestionnaires des tâches" :

cpu1

Soit y accéder grâce à la combinaison des touches "Ctrl + Alt + Supr" puis en cliquant sur "Ouvrir le Gestionnaire des tâches" à nouveau. Nous accédons donc à cette fenêtre où il faut se rendre dans l'onglet "Processus" dans un premier temps :

cpu2

La colonne qui nous intéresse au niveau de la gestion des ressources CPU est la colonne "processeur". On y voit en effet l'utilisation du processeur en pourcentage pour chaque application. Sur l'image ci-dessus, on voit par exemple que "chrome.exe" utilise 3% de mon CPU au moment du screenshot. Ces variables sont en générale assez changeantes pour les petites applications. En revanche pour les jeux vidéo ou les grosses applications, il est possible que l'utilisation du CPU par une seule application monte à 100%. Le problème est alors que les autres applications sont traitées après et cela cause un ralentissement de l'ensemble des applications et du poste tout entier.

Nous pouvons également avoir des informations sur l'utilisation des ressources CPU dans l'onglet "Performance" du gestionnaire des tâches :

cpu3

Ici, les graphiques peuvent être représentés différemment mais le principe reste le même. Sur ce graphique, il s'agit d'un CPU dit "Quad Core", c'est à dire qu'il est "divisé" en quatre partie. On peut d'ailleurs le vérifier dans le gestionnaire des périphériques :

cpu4

Cela permet d'avoir une répartition des charges entre ces 4 sections. Au lieu d'avoir une pile de traitement, le CPU en maintient quatre qui sont donc toutes traitées simultanément.

Nous voyons d'ailleurs sur les graphiques processeurs que les courbes ne sont pas toutes au même niveau en même temps. Cela montre que chaque sections gère des calculs différents.

III. Mise en place et analyse d'un CPU stress test

Nous allons dans un premier temps effectuer un stress test pour voir l'effet que celui-ci à sur nos processeurs. Le but est de pousser les CPU à leurs puissances maximale puis de faire une analyse de ce test.

Analysons tout d'abord l'effet du stress CPU dans l'onglet "Processus" :

cpu5

Nous voyons très nettement notre application "CPUStressMT.exe" utiliser 98% des ressources de notre processeur. Les deux autres pour-cent étant utilisés eux aussi, le reste des applications sont "en attente" de traitement, cela cause immédiatement des latences assez importantes sur notre poste.

Voici également ce qui se passe dans l'onglet "Performance" :

cpu6

On voit également que nos "quatre processeurs" (qui en est en faite un seul divisé en 4) montent à 100 % d'utilisation. Il ne reste donc effectivement aucune place pour le traitement des autres applications.

IV. Gérer les ressources allouées à une applications

Nous allons maintenant réduire les ressources que nous vous allouer à l'application "CPUStressMT.exe". Si cette application utilise 100 % des 4 CPU et que nous l'autorisons à utiliser seulement 2 CPU sur 4, elle ne devrait pouvoir utiliser plus qu'au maximum 50% (2 / 4 *100) des ressources totales de l'ordinateur. Cela laisserais alors les 50% des ressources aux autres applications.

Nous allons donc dans l'onglet "Processus" puis nous faisons un clic droit sur l'application voulue, ici nous serons sur "CPUStressMT.exe" :

cpu7

Nous allons ensuite dans "Définir l'affinité" pour gérer quel CPU sera autorisé à traiter l'application voulue :

cpu8

Par défaut, toutes les cases seront cochées, nous allons par exemple n'autoriser que les "sections" (ou processeur) 1 et 2 à traiter cette application. Il nous faut donc laisser cochés seulement ces deux processeurs.

Relançons un stress CPU pour voir le comportement des 4 CPU, d'abord dans l'onglet "Processus" :

cpu9

On voit que l'application n'utilise que 50% du CPU ! Cela nous indique que les autres applications qui tournent pourront être traitées par les 50 % restant. Voyons également le comportement du processeur dans l'onglet "Performances" :

cpu10

Nous voyons la même chose, les deux premiers CPU tournent à 100% car il traite l'application de stress CPU. En revanche les deux autres traitent le reste des applications et ont encore beaucoup de disponibilités.

Il est important de savoir qu'une fois l'application redémarré, les affinités reviennent par défaut aux 4 processeurs. Ainsi même si une mauvaise manipulation est faite au niveau de la gestion des ressources, on peut revenir à une configuration normale avec un reboot de l'application ou du poste.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

3 commentaires sur “Gérer la charge CPU sous Windows

  • Merci beaucoup pour ce que vous avez partagé avec les internautes, c’est très utile et riche d’informations..En fait j’ai une question à vous poser, je voudrais bien que vous m’aidiez si c’est possible, ma question est la suivante:
    Pour un serveur tournant avec un processeur Intel Xeon:
    Comment activer ou désactiver l’hyperthreading, et surtout quand est ce que il est bénéfique de le désactiver ou le désactiver? Merci

    Répondre
  • Merci pour votre article, il est bien rédigé et très clair.

    J’ai néanmoins une question, j’essaie de faire la même manipulation sur mon pc sous windows 8 mais sans succès.

    Mon problème est que dans le gestionnaire des tâches, lorsque je fais un clic droit sur l’application qui fait bosser à presque 100% mon processeur (lui aussi divisé en quatre), le menu contextuel ne me propose pas de définir l’affinité…

    Du coups je suis bloqué pour le reste de la manœuvre.

    L’application en question est un jeu vidéo, sur d’autres forums j’ai vu qu’il fallait faire la même manipulation que celle expliquée ici.

    Si quelqu’un a des idées, je suis preneur !

    Répondre
  • comment appliquée cette procédure sur un windows server.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.