Un outil simple pour représenter graphiquement l'utilisation de la mémoire?
14
Existe-t-il un script qui montrera l'utilisation de la mémoire sous forme de graphique, par exemple sous forme de graphique à secteurs, chaque processus étant une tranche distincte?
Je ne cherche pas quelque chose comme Munin pour représenter graphiquement l'utilisation de la mémoire au fil du temps, mais plutôt montrer l'utilisation de la mémoire par processus à un moment donné.
Pour rendre ma demande encore plus obscure, c'est pour un serveur sans tête (donc pas d'applications X). La façon la plus simple serait d'écrire un fichier PNG, ou éventuellement un fichier HTML (qui pourrait utiliser Javascript pour permettre le filtrage des processus, en changeant entre les types de graphiques, etc.)
La comptabilité de la mémoire par processus est délicate pour un certain nombre de raisons que j'entrerai dans une minute. Pour une surveillance simple, les scripts gkrellmd ou nagios suffisent probablement. Si vous voulez une plus grande précision, vous devrez regarder plus loin.
smem présente le concept de taille de jeu proportionnelle :
Étant donné que de grandes parties 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 considérablement l'utilisation de la mémoire. PSS mesure à la place la «part équitable» de chaque application de chaque zone partagée pour donner une mesure réaliste.
Exemple: vous démarrez GNOME, provoquant 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 tous les processus qui veulent libglib. La comptabilité de la mémoire naïve compte la taille complète de libglib par rapport à chaque processus qui y est lié.
smem répartit le coût du libglib entre les processus qui l'utilisent, pour donner une image plus proche de la réalité. Il dispose également d'un certain nombre d'options pour afficher l'utilisation de la mémoire (à partir du site Web):
Afficher le smem d'informations de base sur le processus
Afficher la vue système smem -R 4G -K / chemin / vers / vmlinux -w
Oui, leur suggestion que 2.6.27 est raisonnablement récente est assez risible. Les seules distributions que je connais qui sont livrées avec un noyau plus récent sont Fedora 10 et Ubuntu 9.01.
Dave Cheney
9,04; Ubuntu 8.10 est livré avec 2.6.27, mais 2.6.30 est en rc3.
jldugger
Mes excuses, j'ai passé trop de temps en terre RHEL, où 2.6.18 est considéré comme récent.
Dave Cheney
5
Je ne peux penser à rien sur l'étagère
cependant, un combo d'un script PHP exécutant ps -AH v | awk '{print $ 8, $ 9, $ 10}' et l'utiliser avec pChart pourrait vous donner une page Web qui ferait ce que vous cherchez? (utilisation en Ko, pourcentage du total et nom du processus)
bon point. L'API Google Chart est probablement plus rapide à utiliser ...
Mark Regensberg
2
Jetez un œil à sarface - cela 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.
Si vous êtes vraiment dans des niveaux de détail inférieurs, n'oubliez pas collectl. Voici un exemple des types d'utilisation de la mémoire par processus qu'il peut signaler:
Si vous êtes intéressé par des processus spécifiques, vous pouvez spécifier des filtres appropriés (y compris un commutateur pour afficher les threads).
Et si vous vous intéressez à la mémoire en général, elle peut également afficher les détails de la dalle et a même une sortie au format vmstat. Pourquoi voudriez-vous afficher des données au format vmstat alors que l'outil existant le fait déjà? C'est facile - avec collectivement, vous pouvez enregistrer les statistiques dans un fichier et les lire plus tard dans plusieurs formats.
Analyser la sortie et enregistrer au format séparé par des virgules dans un fichier texte.
ouvrez le fichier séparé par des virgules dans Excel.
Dessinez le graphique de ces données à l'aide de l'utilitaire graphique d'Excel.
Si vous souhaitez des instantanés de mémoire à différents intervalles de temps ... définissez le travail cron à l'intervalle souhaité et exécutez le script.
Ce n'est pas exactement ce que vous recherchez, mais vous pouvez peut-être l'adapter à vos besoins en utilisant cette référence (recherchez "Utilisation de la mémoire par processus").
Je ne suis pas entré dans les détails, mais collectl a une option pour générer une sortie séparée par délimiteur, donc dans le cas de gnuplot, vous générez simplement vos données avec des espaces et vous êtes prêt. Il se chargera même parfaitement dans Excel. Si vous voulez des virgules, vous pouvez changer le délimiteur et si vous voulez vraiment faire la route rrd (faites juste attention parce que les tracés ne correspondent pas nécessairement aux données!), Vous pouvez changer le délimètre en deux-points et même changer les horodatages en UTC. -marque
kSar, basé sur des données sar, mais il est basé sur java, est donc plus ou moins indépendant de la plateforme et vous permettra de passer à un hôte distant pour récupérer les données.
Je ne peux penser à rien sur l'étagère
cependant, un combo d'un script PHP exécutant ps -AH v | awk '{print $ 8, $ 9, $ 10}' et l'utiliser avec pChart pourrait vous donner une page Web qui ferait ce que vous cherchez? (utilisation en Ko, pourcentage du total et nom du processus)
la source
Jetez un œil à sarface - cela 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.
la source
et qu'en est-il collectd ?
la source
Fais le toi-même. Créez un script shell simple mettant à jour la base de données RRD. Dessinez ensuite un graphique à l'aide de rrdtool.
la source
Si vous êtes vraiment dans des niveaux de détail inférieurs, n'oubliez pas collectl. Voici un exemple des types d'utilisation de la mémoire par processus qu'il peut signaler:
Si vous êtes intéressé par des processus spécifiques, vous pouvez spécifier des filtres appropriés (y compris un commutateur pour afficher les threads).
Et si vous vous intéressez à la mémoire en général, elle peut également afficher les détails de la dalle et a même une sortie au format vmstat. Pourquoi voudriez-vous afficher des données au format vmstat alors que l'outil existant le fait déjà? C'est facile - avec collectivement, vous pouvez enregistrer les statistiques dans un fichier et les lire plus tard dans plusieurs formats.
essayez-le, vous l'aimerez
la source
Si vous souhaitez des instantanés de mémoire à différents intervalles de temps ... définissez le travail cron à l'intervalle souhaité et exécutez le script.
J'espère que cela pourra aider....
la source
Ce n'est pas exactement ce que vous recherchez, mais vous pouvez peut-être l'adapter à vos besoins en utilisant cette référence (recherchez "Utilisation de la mémoire par processus").
la source
Hmm, la FAQ gnuplot dit qu'elle ne prend pas en charge les camemberts , mais ils suggèrent le diagramme de Bernhard Reiter .
la source
Vous pouvez utiliser #top ou #sysstat
la source
Je ne suis pas entré dans les détails, mais collectl a une option pour générer une sortie séparée par délimiteur, donc dans le cas de gnuplot, vous générez simplement vos données avec des espaces et vous êtes prêt. Il se chargera même parfaitement dans Excel. Si vous voulez des virgules, vous pouvez changer le délimiteur et si vous voulez vraiment faire la route rrd (faites juste attention parce que les tracés ne correspondent pas nécessairement aux données!), Vous pouvez changer le délimètre en deux-points et même changer les horodatages en UTC. -marque
la source
kSar, basé sur des données sar, mais il est basé sur java, est donc plus ou moins indépendant de la plateforme et vous permettra de passer à un hôte distant pour récupérer les données.
http://ksar.atomique.net/
la source
Phpsysinfo ne vous donne- t-il pas la possibilité de voir les informations sur le processus d'une manière ou d'une autre?
la source