14 votes

Outil simple pour afficher l'utilisation de la mémoire?

Y a-t-il un script qui affichera l'utilisation de la mémoire sous forme de graphique, par exemple sous forme de camembert, chaque processus étant une tranche séparée ?

Je ne cherche pas quelque chose comme Munin pour tracer l'utilisation de la mémoire au fil du temps, mais plutôt afficher l'utilisation de la mémoire par processus à un instant donné.

Pour rendre ma demande encore plus vague, il s'agit d'un serveur sans tête (donc pas d'applications X). La manière la plus simple serait d'écrire un fichier PNG, ou éventuellement un fichier HTML (qui pourrait utiliser Javascript pour permettre le filtrage des processus, le passage entre les types de graphiques, etc.)

13voto

ChrisR Points 303

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):

  1. Afficher des informations de base sur les processus smem
  2. Afficher la vue système smem -R 4G -K /chemin/vers/vmlinux -w
  3. Afficher les totaux et pourcentages smem -t -p
  4. Afficher différentes colonnes smem -c "nom utilisateur pss"
  5. Afficher les processus filtrés par mapping smem -M libxml
  6. Afficher les mappings filtrés par processus smem -m -P [e]volution
  7. Lire les données depuis un fichier tarball de capture smem --source capture.tar.gz
  8. Afficher un diagramme en barres étiqueté par pid smem --bar pid -c "pss uss"
  9. 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).

5voto

18hrs Points 583

Je ne trouve rien de prêt à l'emploi.

Cependant, une combinaison d'un script PHP exécutant ps -AH v | awk '{ print $8,$9,$10}' et l'utilisant avec pChart pourrait vous donner une page web qui ferait ce que vous cherchez ? (utilisation en Ko, pourcentage du total et nom du processus)

2voto

Xerxes Points 4113

Jetez un coup d'œil à sarface - il dépend des données sar, et vous pouvez surveiller votre utilisation de la mémoire (et toutes les autres données sar/sysstat) en direct.

1voto

Jiri Klouda Points 101

Et qu'en est-il de collectd ?

1voto

Faites-le vous-même. Créez un script shell simple mettant à jour la base de données RRD. Ensuite, dessinez un graphique en utilisant rrdtool.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X