La comptabilité de la mémoire par processus est délicate pour plusieurs raisons que j'aborderai dans un instant. Pour une surveillance simple, gkrellmd, ou des scripts nagios sont probablement suffisants. Si vous souhaitez une plus grande précision, vous devrez chercher plus en profondeur.
smem introduit le concept de Taille de l'ensemble proportionnel:
Parce que de larges portions de la mémoire physique sont généralement partagées entre plusieurs applications, la mesure standard de l'utilisation de la mémoire connue sous le nom de taille de l'ensemble résident (RSS) surestimera significativement l'utilisation de la mémoire. PSS mesure plutôt la "part équitable" de chaque zone partagée de chaque application pour donner une mesure réaliste.
Exemple: Vous lancez GNOME, ce qui entraîne le démarrage d'un certain nombre de processus, un pour chaque applet et programme. Ils sont tous liés à libglib. Linux charge libglib dans un bloc de mémoire et le mappe dans chaque processus qui a besoin de libglib. Une comptabilité naïve de la mémoire compte la taille complète de libglib pour chaque processus y faisant référence.
smem divise le coût de libglib parmi les processus qui l'utilisent, pour donner une image plus proche de la réalité. Il propose également plusieurs options pour afficher l'utilisation de la mémoire (du site web):
- Afficher des informations de base sur les processus smem
- Afficher la vue système smem -R 4G -K /chemin/vers/vmlinux -w
- Afficher les totaux et pourcentages smem -t -p
- Afficher différentes colonnes smem -c "nom utilisateur pss"
- Afficher les processus filtrés par mapping smem -M libxml
- Afficher les mappings filtrés par processus smem -m -P [e]volution
- Lire les données depuis un fichier tarball de capture smem --source capture.tar.gz
- Afficher un diagramme en barres étiqueté par pid smem --bar pid -c "pss uss"
- Afficher un diagramme circulaire de RSS étiqueté par nom smem --pie name -s rss
Cependant, vous aurez besoin d'un kernel très récent (> 2.6.27).