Utilisation du Gestionnaire des tâches avec 64 processeurs logiques ou plus

Ryan Haveson, chef de projet au sein de l'équipe Expérience utilisateur, souhaite faire le point sur les améliorations apportées au Gestionnaire des tâches depuis la publication de la version Developer Preview de Windows. Dans ce billet, vous découvrirez les nouveaux outils du Gestionnaire des tâches, qui permettent de mieux gérer les systèmes équipés de nombreux processeurs logiques. Cette évolutivité dépasse largement les limites des PC de bureau et concerne avant tout les serveurs et les centres de données. Une grande partie du travail de développement de Windows est lié au fait que le système d'exploitation est censé s'adapter à de nombreux formats d'ordinateurs et à toutes les architectures de processeurs.

Une petite remarque sur vos commentaires : merci de publier uniquement des commentaires utiles à la communauté des développeurs. N'oubliez pas qu'en dehors de la protection antispam automatisée, les commentaires ne sont pas modérés. –Steven Sinofsky

Dans un précédent billet, nous avons évoqué le nouveau Gestionnaire des tâches, que bon nombre d'entre vous ont pu découvrir de façon plus directe en installant la version Developer Preview. Ce sujet a suscité beaucoup d'intérêt et nous pensons qu'il est maintenant temps de vous présenter rapidement une fonctionnalité que nous venons d'ajouter à nos dernières versions de travail quotidiennes, dont vous pourrez profiter à votre tour prochainement, grâce à la version bêta.

Les images ci-dessous illustrent une fonctionnalité souvent demandée par les administrateurs de serveurs et les utilisateurs d'ordinateurs ultra-puissants équipés de nombreux processeurs logiques. Notons tout d'abord que nous parlons ici de processeurs logiques. Si votre système prend en charge la technologie Hyper-Threading, le Gestionnaire des tâches affiche plusieurs processeurs logiques pour chaque processeur physique.

Ceux d'entre vous qui disposent d'un de ces systèmes équipés de nombreux processeurs savent que les graphiques relatifs au processeur affichés dans le Gestionnaire des tâches de Windows 7 présentent un certain nombre de limitations :

  • Manque de comparaisons en temps réel : lorsque vous observez les graphiques d'utilisation de nombreux processeurs logiques, ce sont les anomalies qui présentent le plus d'intérêt. Si les données sont affichées à l'échelle, pour essayer de comprendre ce qui se passe, il est généralement difficile de comparer des graphiques actualisés en temps réel couvrant un intervalle de 60 secondes d'utilisation processeur.
  • Graphiques trop petits : au-delà de 64 processeurs logiques, les graphiques deviennent relativement petits. Pour essayer d'identifier les processeurs les plus utilisés, vous devez vraiment plisser les yeux. Si votre système comporte plus de 256 processeurs logiques, vous voyez à peine les graphiques.
  • Identification de l'ID du processeur : si vous détectez une anomalie dans un graphique, vous ne pouvez pas identifier facilement l'ID du processeur correspondant.

Vous pouvez voir ci-dessous l'onglet Performance du Gestionnaire des tâches de Windows 7, sur un système équipé de 160 processeurs logiques.

Le tableau Historique de l'utilisation du processeur contient 160 cases minuscules, chacune d'entre elles contenant un graphique d'utilisation mis à jour en temps réel.
Figure 1 : ancien Gestionnaire des tâches affichant 160 processeurs logiques

Comme vous pouvez le constater, il est très difficile de comparer les différents graphiques affichés dans le tableau Historique de l'utilisation du processeur. Les graphiques sont difficiles à lire et il est pratiquement impossible de comparer l'utilisation instantanée des processeurs, car chaque case contient un graphique en temps réel couvrant 60 secondes. En outre, tous les graphiques du tableau Historique de l'utilisation du processeur semblent identiques et vous ne pouvez donc pas identifier facilement l'ID de processeur de tel ou tel graphique. Dans notre précédent billet consacré au Gestionnaire des tâches, nous avons déjà énuméré les avantages offerts par les cartes thermiques dans le cadre de la visualisation et de la comparaison de quantités importantes de données numériques. Lors des études préalables à la conception des graphiques affichés dans les vues multi-cœurs du nouveau tableau de bord des performances, nous avons pu constater que le choix des cartes thermiques s'imposait.

Dans les captures d'écran ci-dessous, issues d'une version actuelle de Windows 8, il est désormais plus facile de voir d'un coup d'œil l'ensemble des processeurs logiques et de savoir lesquels sont sous-utilisés ou sur-utilisés.

(Remarque : Les captures d'écran ci-dessous montrent le Gestionnaire des tâches sur un système équipé de 160 processeurs logiques, avec une charge de travail simulée.)

L'onglet Performance comporte sept vues : CPU (Processeur), Memory (Mémoire), Disk 0 (Disque 0), Disk 4 (Disque 4), Disk 8 (Disque 8), Ethernet et Ethernet. Dans la vue CPU (Processeur), le tableau de processeurs logiques se présente sous la forme d'une carte thermique sur laquelle chaque case contient un pourcentage d'utilisation et la couleur correspondante.
Figure 2 : nouveau Gestionnaire des tâches affichant 160 processeurs logiques

Dans le nouveau graphique d'utilisation des processeurs, vous pouvez également identifier l'ID de processeur logique associé à chaque entrée, grâce à une info-bulle, en survolant l'entrée souhaitée à l'aide du pointeur de la souris.

Info-bulle d'une entrée dont le taux d'utilisation est de 100 %, indiquant « CPU 0 (Node 5) » (Processeur 0 - Nœud 5)
Figure 3 : info-bulle affichant l'ID de processeur logique

L'un des principaux avantages des cartes thermiques est qu'elles s'adaptent particulièrement bien à de grands volumes de données. Le nouveau Gestionnaire des tâches peut afficher tous les processeurs logiques pris en charge par le système d'exploitation (soit jusqu'à 640 !). Pour que vous puissiez à tout moment afficher les informations à une taille adaptée, lorsque les volumes de données à afficher sont trop importants par rapport à la taille de la fenêtre, la carte thermique s'adapte à cette dernière et une barre de défilement s'affiche si nécessaire.

La carte thermique reste facile à lire, car elle affiche 13 lignes et 9 colonnes de données ; elle contient en outre une barre de défilement permettant d'afficher les cases supplémentaires situées sous les 13 premières lignes
Figure 4 : avec 160 processeurs logiques, le graphique d'utilisation des processeurs est redimensionné et comporte une barre de défilement

Ceux d'entre vous qui souhaitent gérer leurs systèmes dans les moindres détails peuvent même définir quels processeurs logiques peuvent être utilisés par tel ou tel processus. Pour ce faire, vous devez en premier lieu identifier l'ID du cœur logique, en survolant l'une des cases de la carte thermique, accéder à l'onglet Détails, cliquer avec le bouton droit de la souris sur le processus souhaité, puis cliquer enfin sur « Set affinity » (Définir l'affinité).

L'utilisateur a effectué un clic droit sur « iexplore.exe » dans l'onglet Détails du Gestionnaire des tâches, qui affiche ainsi un menu contextuel contenant les commandes suivantes : Open file location (Ouvrir l'emplacement du fichier), End process (Arrêter le processus), End process tree (Terminer l'arborescence du processus), Debug (Déboguer), UAC virtualization (Virtualisation du contrôle de compte d'utilisateur), Create dump file (Créer un fichier de vidage), Set priority (Définir la priorité), Set affinity (Définir l'affinité ; il s'agit de l'option sélectionnée), Analyze wait chain (Analyser la chaîne d'attente), Search online (Rechercher en ligne), Properties (Propriétés) et Go to service(s) (Accéder aux services).
Figure 5 : définition de l'affinité des processus dans l'onglet Détails

La boîte de dialogue contient le message suivant : « Which processors are allowed to run « iexplore.exe » ? » (Quels sont les processeurs autorisés à exécuter « iexplore.exe » ? »). Une liste déroulante est affichée pour le groupe de processeurs. La valeur sélectionnée est « Group 0 ». La capture d'écran ci-dessous contient des cases à cocher intitulées CPU 0 (Node 0), CPU 1 (Node 0), CPU 2 (Node 0) (Processeur 0 - Nœud 0, Processeur 1 - Nœud 0, Processeur 2 - Nœud 0), etc., ainsi que des boutons OK/Cancel (OK/Annuler).
Figure 6 : sélection des processeurs logiques du processus

Bien évidemment, la définition de l'affinité des processeurs s'adresse uniquement aux utilisateurs très expérimentés, souhaitant ou devant disposer d'un tel niveau de contrôle. Si vous ne savez pas ce que vous faites, vous risquez de mettre à mal les fonctionnalités de gestion d'alimentation et les performances du système. Par conséquent, nous avons optimisé le système pour qu'il gère de lui-même les processeurs. Au final, je peux vous assurer qu'il est difficile de faire mieux que les algorithmes sophistiqués utilisés par Windows. Ceux-ci gèrent automatiquement l'allocation des processus à chaque processeur logique, en fonction des possibilités matérielles et de la topologie du système.

--Ryan Haveson