Windows 7 : gérer la mémoire avec les fonctions du Gestionnaire de tâches
Certaines fonctions du Gestionnaire des tâches peuvent remédier aux petits soucis de gestion de mémoire de Windows. Voici comment.
Pour résoudre les problèmes de gestion de mémoire de Windows, commencez par déterminer son mode d'allocation. Certaines fonctions du Gestionnaire des tâches peuvent en effet remédier aux petits soucis de vos ordinateurs de bureau.
Parfois, il existe une solution facile et rapide aux problèmes de gestion de mémoire de Windows. A d'autres moments, il vous faudra creuser la question et c'est là que certaines fonctions du Gestionnaire des tâches peuvent s'avérer utiles.
Fonctions comparées du Gestionnaire des tâches de Windows 7, XP et Vista
L'application Gestionnaire des tâches est intégrée à Windows avec un onglet Performance, mais les options sont très différentes sous XP, Vista et Windows 7 comme le montrent ces trois captures :
Figure 1 : Le gestionnaire de tâches de XP
Figure 2 : Le gestionnaire de tâches de Vista
Figure 3 : Le gestionnaire de tâches de Windows 7
Notez que dans les deux versions, un bouton "Moniteur de ressource" permet d'accéder à des informations supplémentaires. Voici résumé dans un tableau les différences importantes par OS.
Fonctions du Gestionnaire des tâches |
Windows XP |
Windows Vista |
Windows 7 |
Onglet Services | Non | Oui | Oui |
Informations sur les performances de la mémoire, du réseau, de l'unité centrale, du disque | Non | Oui, aperçu uniquement | Oui, onglet détaillé pour chaque élément |
Utilisation de l'UC par processeur | Oui | Oui | Oui |
Applications | Oui | Oui | Oui |
Processus | Oui | Oui | Oui |
Colonnes supplémentaires pour les processus | Oui, mais limitées : la colonne « Util. mémoire » concerne la plage de travail, mais pas la plage de travail privée | Oui, plage de travail privée et nombreuses autres colonnes | Oui, idem que Vista |
Dans le Gestionnaire des tâches de Vista et Windows 7, l'onglet Services a connu de nombreuses améliorations par rapport à celui de XP. Dans la figure 1, certains processus sont cités sous le nom de svchost.exe. Comme il s'agit en somme d'une appellation générique sous laquelle d'autres processus sont exécutés, il est difficile de savoir quel est le processus véritablement en cause. Sous Windows XP, il fallait utiliser la commande tasklist pour dissocier les processus de svchost.
Figure 4a
Notez que dans la figure 4a , le Gestionnaire des tâches montre le processus svchost.exe portant l'ID produit (PID) 1144.
Figure 4b
En cliquant sur l'onglet Services et en faisant un tri sur la colonne PID (figure 4b) dans le Gestionnaire des tâches de Vista ou Windows 7, il est facile de voir tous les processus qui se cachent sous ce svchost.exe.
La deuxième ligne du tableau ci-dessus concerne les « Informations sur les performances ». La figure 5 ci-contre présente la vue Mémoire du Moniteur de ressources de Vista, qui affiche dynamiquement le nombre de fautes matérielles par seconde (pour l'écriture sur disque) et le pourcentage de mémoire physique « utilisée » (en supposant qu'il s'agisse du contraire de la mémoire disponible).
Cette fenêtre contient aussi les vues Réseau, Disque et Processeur. Vous pouvez ainsi afficher un aperçu rapide des statistiques des processus en matière d'utilisation de la mémoire. Comme nous voyons que le disque est très occupé, nous développons la section Disque, qui contient des informations complémentaires sur les processus et permet de voir lesquels monopolisent le disque.
Suivi de la mémoire dynamique avec le Gestionnaire des tâches de Windows 7
Dans le tableau Mémoire, un processus, svchost.exe (secsvcs), présente 1 061 fautes matérielles. Il se peut qu'il manque de mémoire, provoquant ainsi l'échange de mémoire avec le disque. Il faudrait se pencher sur le problème. Surveillez dynamiquement la mémoire pendant quelques minutes pour voir si le nombre de fautes matérielles augmente rapidement.
Figure 6
Windows 7 est mon système préféré pour l'analyse des ressources de mémoire. La figure 6 montre l'une des fonctions les plus utiles du Gestionnaire des tâches de Windows 7, le Moniteur de ressources. Il présente un histogramme de la mémoire physique utilisée, des fautes matérielles et de la charge d'écriture (c'est-à-dire de la mémoire vraiment utilisée par les processus, pas seulement réservée). Le Moniteur de ressources affiche un graphique à barres en couleurs, facile à lire, qui présente l'allocation de mémoire de façon dynamique.
Comme il est dit dans l'article précédent sur la gestion de la mémoire Windows, la mémoire disponible peut servir à démarrer une autre application ou à répondre à de nouvelles demandes émises par les applications déjà ouvertes. La mémoire disponible dans la figure 6 correspond à la somme des valeurs Veille et Libre. La valeur Modifiée correspond à la liste des pages modifiées, c'est-à-dire celles qui sont modifiées mais n'ont pas été utilisées depuis un certain temps. Voilà qui résout parfaitement le problème de compréhension des termes liés à la mémoire dans l'onglet Performance du Gestionnaire des tâches. Il est en effet facile de rapprocher ces valeurs des listes du gestionnaire de mémoire.
Détecter les fuites de mémoire à l'aide du Gestionnaire des tâches
Les fuites de mémoire sont relativement faciles à diagnostiquer si vous utilisez la bonne méthode et rassemblez les bonnes données. Lorsqu'une application prend fin, les pages mémoire de sa plage de travail sont libérées dans la liste Libre. Elles sont ensuite remises à zéro et réutilisées par d'autres applications. C'est pour cela qu'en cas de mémoire insuffisante, l'arrêt de certaines applications permet de libérer de la mémoire pour d'autres.
De plus, une application transfère des pages dans la liste Veille dès qu'elles ne sont pas utilisées pendant un certain temps. Ces pages peuvent également finir par se retrouver dans la liste Libre. Cependant, on parle de fuite de mémoire lorsqu'une application qui ne fonctionne pas correctement ne libère pas ses pages alors qu'elles sont inactives. Les causes sont multiples mais en substance, l'application utilise de plus en plus de mémoire sans en libérer, et peut même ne libérer aucune page lorsqu'elle est arrêtée.
La capture d'écran de la figure 1 montre un Gestionnaire des tâches Windows XP avec la colonne Util. mémoire. Cette colonne, affichée par défaut, indique la quantité de mémoire de la plage de travail pour chaque processus. Elle ne permet pas de détecter d'éventuelles fuites de mémoire,car dès que la plage atteint la valeur maximale autorisée par la fonction Gestion de la mémoire de Windows, elle est réduite de façon à ne pas la dépasser. Accédez au menu Affichage, option Sélectionner des colonnes, et ajoutez la colonne Taille MV (mémoire virtuelle). Vous verrez ainsi en détail toute la mémoire utilisée.
Pour détecter une fuite de mémoire, démarrez l'ordinateur et lancez le processus que vous soupçonnez être à l'origine d'une fuite. Surveillez la colonne Taille MV. En cas de fuite, vous constaterez que la mémoire allouée au processus ne cesse d'augmenter sans jamais être libérée, sauf si vous arrêtez le processus ou redémarrez l'ordinateur. Généralement, cette situation apparaît dans le Moniteur de ressources lorsque les compteurs de mémoire sont activés, mais elle peut aussi dans un premier temps être mise en évidence dans le Gestionnaire des tâches.
Dans Windows 7, les libellés des colonnes sont plus clairs. La figure 7 montre la colonne par défaut Plage de travail (mémoire) ainsi que la colonne Mémoire (jeu de travail privé) que j'ai ajoutée. La colonne Plage de travail correspond à la colonne Util. mémoire de Windows XP, tandis que Mémoire (jeu de travail privé) désigne les pages privées (pages modifiées) qui s'accroissent continuellement en cas de fuite de mémoire.
Bien entendu, cette observation doit être effectuée sur une période donnée. Ainsi, si vous traciez un graphique, la plage de travail devrait augmenter et diminuer au rythme des optimisations de page. A l'opposé, en cas de fuite de mémoire, le graphique montrerait une augmentation graduelle sans aucune diminution, ce qui finirait sans doute par entraîner un blocage du processus.
L'Analyseur de performances (désormais appelé Moniteur de ressources) permet d'observer les compteurs de mémoire. Vous pouvez utiliser les compteurs des plages de travail et de la mémoire disponible pour repérer un processus au fil du temps. Ces données peuvent être enregistrées dans un fichier et faire l'objet d'un suivi.
Fonctions du Gestionnaire des tâches de Windows 7 pour l'analyse de la mémoire
Dans Windows 7, la fonction Moniteur de ressources du Gestionnaire des tâches s'est nettement améliorée. La figure 6 nous permet de faire plusieurs observations :
- Dans le Gestionnaire des tâches, la mémoire disponible se compose des listes Libre, Veille et Zéro . Le Gestionnaire des tâches de Windows 7 affiche les trois listes sous forme graphique
- Si la valeur Veille est élevée, cela signifie que vous faites un bon usage de la mémoire : de nombreux processus sont mis en cache.
- Si la valeur Libre est basse, c'est bon signe. Certains croient que cela dénote une insuffisance de mémoire, mais en fait cette liste se compose avant tout des processus en cours d'arrêt. Donc, à moins que vous mettiez fin à de nombreux processus, cette valeur doit être proche de zéro, comme indiqué à la figure 5 pour Windows 7, et idem sous Vista. Notez que la seule façon de voir ces listes sous XP est d'utiliser le débogueur du noyau Windows
- L'activité au niveau des défauts de page n'est pas la preuve que vous avez besoin de plus de mémoire, sauf si le même fichier fait l'objet d'un grand nombre de lectures. Cela peut être déterminé à l'aide de l'outil SysInternals Process Monitor
- La Limite de mémoire dédiée ou Charge d'écriture, présentée dans le Gestionnaire des tâches , est la quantité totale de mémoire virtuelle privée disponible sur l'ordinateur (la somme de la taille du fichier d'échange et de la RAM). Si la limite de mémoire dédiée est basse, vos applications disposent de moins de mémoire pour vos données et peuvent provoquer des erreurs indiquant que la mémoire virtuelle du système est insuffisante. Il est possible d'y remédier en augmentant la taille du fichier d'échange ou en ajoutant de la RAM, quoique la première solution n'entraînera sans doute pas de meilleures performances
- Bien que XP, Vista et Windows 7 puissent fonctionner sans fichier d'échange, les performances s'en ressentiront quelque peu et les applications risquent de manquer de mémoire
Le Gestionnaire des tâches de Windows 7 facilite le diagnostic et permet de gérer la mémoire Windows d'un seul coup d'oeil sans configurer les compteurs du Moniteur de ressources Windows. Ces compteurs peuvent cependant être utiles pour creuser la question si besoin est. Le Moniteur de ressources du Gestionnaire des tâches fournit également une vue d'ensemble des performances du disque, du réseau et du processeur.