Mac OS X 10.1
Il y a plusieurs outils pour mesurer l'utilisation de la RAM avec Mac OS X. Malheureusement, la plupart d'entre eux sont des programmes en ligne de commande. (Un moniteur de mémoire complet en GUI serait bienvenu sur Mac OS X 10.2). Il n'y a même pas d'équivalent au graphique de base de l'utilisation de mémoire par application fourni dans le dialogue "A propos de ce mac" de Mac OS X classique. Bien sûr, un simple résumé n'est pas possible sous Mac OS X compte tenu des énormes différences entre sa gestion de mémoire et celle de Mac OS classique.
L'outil le plus élémentaire de diagnostic de la mémoire est le programme vm-stat
. La sortie ressemble à ceci (figure 1)
Fig. 1 : Sortie de vm-stat
vm-stat
, disponible en tapant man vm-stat
sur la ligne de commande. (En particulier, ne vous embarrassez pas avec la ligne bizarre "Translations faults").
La ligne de commande top
fournit une image un peu plus élaborée de l'utilisation de la mémoire. top
est utile au delà d'un simple diagnostic de mémoire. Sa fonction est, pour ainsi dire, de montrer les processus les plus exigeants en cours de fonctionnement (en général, 15). L'utilisation du CPU est un facteur important pour déterminer l'ordre des processus top
, mais top
inclut aussi des informations sur l'utilisation de mémoire de chaque processus, et un résumé de l'utilisation de mémoire dans son ensemble. Voici mon G4 au repos, vu de la maison sur une fenêtre de terminal :
Fig. 2 : Sortie de top
Une description détaillée des champs de la partie inférieure de cette sortie est disponible dans la page de manuel de top
(taper man top
dans la ligne de commande). Malheureusement, la description détaillée de la partie supérieure n'est pas fournie dans la page du manuel. Heureusement la plupart des choses , ou bien s'expliquent d'elles-mêmes (nombre total de processus et de threads), ou sont ésotériques (nombre de régions de mémoire).
L'information la plus intéressante dans la section globale est dans les deux dernières lignes : comme pour vm-stat
, , elles détaillent la mémoire utilisée, libre, "câblée", "active" et "inactive", mais avec des unités plus familières (en Mo, alors que vm-stat
les donne en pages).
Ne vous embarrassez pas de la statistique sur la mémoire "free". Pendant un usage modéré à intense, cela doit probablement converger vers une constante de quelques Mo. Les valeurs qu'il vous faut examiner pour évaluer l'utilisation de la mémoire en relation avec les performances sont décrites dans ce qui suit.
Pagein/pageout fournissent deux nombres (199957 (0) pour pagein). Le premier est le nombre cumulé des pageins ou des pageouts depuis que le système a redémarré. Le second nombre (entre parenthèses) est le nombre de pagein ou de page out intervenues dans la dernière seconde écoulée. Si ces nombres se maintiennent au dessus de zéro pendant un temps prolongé, c'est une indication que vous devriez utiliser un peu plus de RAM. Par exemple, s'ils restent à 50 ou plus pendant longtemps, c'est un signe que votre système est emballé. (Bien sûr, vous n'aurez sans doute pas besoin de top
pour vous en apercevoir, il suffit d'écouter votre disque si vous êtes près de l'ordinateur).
La seconde partie de la sortie de top
liste l'information sur les 15 (dans ce cas) principaux processus du système. Les quatre dernières colonnes contiennent l'information d'utilisation de la mémoire. La plus importante est la colonne RPRVT qui signifie "Resident Private". Elle montre la quantité de RAM physique qui est allouée pour l'utilisation privée de chaque processus. (Pour les utilisateurs de Mac confirmés, c'est ce qui se rapproche le mieux de la portion "filled" -rempli- des barres d'utilisation de la mémoire dans le dialogue "A propos de ce Mac" de Mac OS classique). RPRVT est une indication satisfaisante de l'ensemble de travail de chaque processus.
La colonne RSHRD montre la quantité de mémoire physique résidente qu'un processus partage avec un ou plusieurs autres processus. RSIZE montre la quantité totale de mémoire physique utilisée par une application, y compris la mémoire partagée avec d'autres processus. (On pourrait penser que ce nombre soit la somme de RPRVT et de RSHSD, mais ce n'est pas le cas; je suppose que c'est parce que RSHRD inclut le nombre total de pages résidentes pour chaque bibliothèque partagée plutôt que seulement les pages résidentes que cette application utilise. Quelqu'un peut-il m'éclairer là-dessus ?).
Pour finir, la colonne VSIZE montre la quantité totale de mémoire (virtuelle) que chaque processus a alloué. Ce nombre est souvent très grand. Mais rappelez-vous que la quantité de mémoire physique résidente (c'set à dire RSIZE) est beaucoup plus importante.
La mémoire utilisée pour les tampons de fenêtre de l'application est incorporée d'une façon plutôt erronée dans la colonne RSHRD parce qu'elle est partagée avec le processus window server. Par exemple, BBEdit montre une taille RSHSD de 70,9 Mo, la plus grande partie étant due à des tampons de la fenêtre. Le processus window server en lui même n'est pas dans les 15 premiers (ce qui n'est pas surprenant car je suis connecté à l'aide du Terminal, et que personne n'utilise l'IUG), mais l'option - l
de top
listera tous les processus. La sortie (écourtée) ci-dessous (figure 3) montre que window server utilise un total de 124 Mo de mémoire physique (dont 120 Mo sont listés dans RSHRD parce que les tampons de fenêtre sont partagés avec les applications correspondantes). La mémoire totale virtuelle tousse à 203 Mo.
Fig. 3 : Sortie (partielle) de top -l
Un dernier outil de diagnostic est utile pour obtenir de l'information sur un processus particulier. La première colonne de top
montre le PID, "process identifier". La commande ps
peut être utilisée pour obtenir de l'information sur ce processus en rentrant ce nombre. Par exemple,
Fig. 4 : utilisation de PS en fournissant le PID
La commande ps
a un ensemble de fonctions déroutant, mais l'exemple ci-dessus se comprend de lui-même. Je vous laisse faire des investigations plus complètes à titre d'exercice ( man ps
).
Cela doit être clair maintenant : OS X aime la RAM. L'OS et les applications en ont besoin, bien sûr, mais ce sont des consommateurs "supplémentaires" comme le serveur de fenêtres et le tampon de cache qui mettent OS X dans une classe particulière. Le système de mémoire virtuelle de Mac OS X fait un travail remarquable pour permettre à la RAM physique de faire pour le mieux mais il ne peut rien faire quand l'ensemble de travail dépasse largement la mémoire physique (RAM) disponible, comme c'est souvent le cas sur un système surpeuplé avec beaucoup d'applications, de fenêtres et de fichiers et la charge supplémentaire de Mac OS 9.
La RAM est maintenant relativement bon marché, et elle deviendra moins cher. Si vous voulez utiliser sérieusement Mac OS X sur votre système; et que vous avez moins de 512 Mo de RAM, songez à le mettre à jour (Non, je n'ai pas d'intéressement chez les vendeurs de RAM pour faire cette recommandation, mais peut-être que je le devrais ;-)
Selon mon expérience, le comportement de l'utilisation de la RAM sous Mac OS X 10.1 n'est pas différent de celui de 10.0. Quelques applications qui ont été révisées pour 10.1 utilisent plus de RAM que leur version 10.0.x et quelques une en utilisent moins (comme nous le verrons dans un moment). Mais les facteurs les plus importants d'utilisation de la RAM - l'architecture de la mémoire, le tampon de cache, et le serveur de fenêtres - n'ont pas changé sous 10.1. Mac OS X 10.0.x avait besoin de beaucoup de RAM pour opérer en douceur, et c'est la même chose pour 10.1. Je sais que cette section a été un peu longue, pour arriver à une conclusion décevante, mais j'espère qu'elle a été informative, au moins pour quelques lecteurs.