45 votes

Comment surveiller et enregistrer l'utilisation de la mémoire/du CPU des processus au fil du temps ?

Je cherche un moyen de diagnostiquer des problèmes, tels que la mort de swap, où un processus de mémoire de type ballon remplit le swap et met hors service toute la machine (comme apache).

J'utilise déjà cacti et je peux mettre en place nagios (bien que je préférerais ne pas le faire) ou munin mais autant que je puisse le dire, ils ne peuvent pas enregistrer l'utilisation individuelle des programmes - juste l'état général.

Je sais que je peux écrire un script qui >> vers un fichier toutes les 30 secondes mais j'aimerais voir si une solution mature existante existe déjà.

Encore une fois, idéalement, cela devrait :

  • enregistrer l'utilisation de la mémoire des processus toutes les N secondes
  • enregistrer l'utilisation du processeur des processus toutes les N secondes
  • prendre en charge les graphiques et l'historique
  • prendre en charge les moyennes - comme mysqld a utilisé 43% du processeur dans la dernière journée et une moyenne de 400Mo de mémoire
  • être gratuit et open source

Les noms des processus ne sont pas connus à l'avance et ne devraient pas l'être - l'idée est simplement de le laisser surveiller et ensuite d'examiner les principaux coupables.

Mon système est Linux (OpenSUSE).

23voto

BillThor Points 27096

Si vous voulez seulement les principaux coupables, envisagez d'exécuter top avec un intervalle relativement long (60 secondes ou plus) en mode batch. Vous pourriez avoir besoin de plus d'un top en cours d'exécution pour capturer les principaux coupables sur plusieurs ressources. J'ai configuré des systèmes pour exécuter top pendant quelques cycles lorsque des ressources étaient trop utilisées.

Envisagez d'exécuter sar en mode batch pour capturer l'utilisation des ressources. Je sais que c'est basé sur le serveur, mais c'est utile pour déterminer les moments où des problèmes surviennent.

Exécutez munin et activez les notifications. Cela vous donnera peut-être l'occasion d'intervenir et d'observer le serveur en train de tomber en panne. Vous pourrez peut-être corriger le problème avant qu'il ne tombe en panne.

Pour les fuites de mémoire, une augmentation constante de l'utilisation du swap indique un problème. J'ai déjà observé un serveur mourir lentement sur une période de jours. Le service problématique était un programme surveillant d'autres processus pour des fuites de mémoire. L'administrateur système insistait constamment sur le fait que l'augmentation de l'utilisation du swap n'était pas un problème, jusqu'à ce que le serveur cesse de répondre.

Vous pourriez constater que la détection d'anomalies de cfengine peut être utilisée pour déclencher un script afin de capturer l'état du système lorsque les choses tournent mal. Vous pourriez avoir besoin de beaucoup plus d'informations que seulement les processus utilisant le plus de ressources. En cas d'afflux soudain d'utilisation, vous pourriez vouloir une liste des connexions réseau (par adresse, pas par nom). L'utilisation de la mémoire est également utile.

15voto

hughdbrown Points 15770

sysstat est exactement fait pour votre genre d'objectif.

9voto

Gunter Points 36

J'ai déjà utilisé atop auparavant:

http://freshmeat.net/projects/atop/

"Atop est un moniteur de performances en mode ASCII plein écran capable de rapporter l'activité de tous les processus (même si les processus se sont terminés pendant l'intervalle), de journaliser quotidiennement l'activité du système et des processus pour une analyse à long terme, de mettre en évidence les ressources système surchargées en utilisant des couleurs, etc. À intervalles réguliers, il montre l'activité au niveau du système liée au CPU, à la mémoire, au swap, aux disques et aux couches réseau, et pour chaque processus actif, il montre l'utilisation du CPU, la croissance de la mémoire, la priorité, le nom d'utilisateur, l'état et le code de sortie."

7voto

PiL Points 1581

Avez-vous essayé collectd ?
C'est très puissant et personnalisable.
Possède de nombreux plugins et peut être intégré avec nagios.

http://collectd.org/features.shtml

3voto

maclema Points 5959

Server Density fait exactement ce que vous décrivez.

Je l'utilise sur l'un de nos serveurs de production et j'en suis très satisfait. Sa fonctionnalité principale est la possibilité de visualiser des graphiques, de cliquer sur un pic et de voir la consommation de CPU/mémoire du serveur à ce moment précis, y compris tous les processus en cours d'exécution. Ils appellent ça des instantanés.

Il s'améliore constamment. L'une des dernières fonctionnalités est la détection d'anomalies, qui vous permet de détecter facilement les anomalies. Vous pouvez également configurer différents seuils

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