Gérer la charge CPU sous Windows
Sommaire
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" :
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 :
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 :
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 :
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" :
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" :
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" :
Nous allons ensuite dans "Définir l'affinité" pour gérer quel CPU sera autorisé à traiter l'application voulue :
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" :
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" :
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.
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
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 !
comment appliquée cette procédure sur un windows server.