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

3voto

blahblah Points 31

nmon est un excellent outil qui fait ce que vous recherchez. Développé pour AIX et Linux. Produit une tonne de sortie détaillée et facile à intégrer dans des rapports. Si vous le cherchez sur Google, il y a un wiki IBM qui contient une foule de documentation et d'utilitaires supplémentaires pour analyser les données.

3voto

bigmattyh Points 9167

Les réponses suggérées lorsque j'ai posé une question similaire étaient les suivantes :

Icapan a dit:

Munin est le moyen le plus simple d'obtenir des graphiques de disponibilité avec un minimum d'effort en installation et configuration. J'utilise également atop pour l'utilisation agrégée du CPU par certains processus, mais ce n'est pas ce que vous avez demandé.

David Spillet a dit:

J'utilise collectd pour enregistrer la charge système parmi un certain nombre d'autres paramètres. Il stocke les données dans des magasins RRD qui peuvent être graphiquées et analysées à l'aide des nombreux outils et scripts disponibles. J'utilise une version modifiée de ce script pour mes graphiques (résultat d'échantillon).

Collectd dispose de plugins pour surveiller un tas de choses (tout ce qui est couramment demandé et quelques extras), et créer le vôtre ne devrait pas être difficile si vous avez besoin de quelque chose de spécialisé, ce qui en fait un outil très flexible. Configurer les graphiques dans rrd.cgi est un processus très manuel, bien que pas difficile, bien que vous puissiez bien trouver un outil plus pratique pour travailler avec les fichiers RRD maintenus par collectd.

Vous pouvez également vérifier Nagios ou OpenNMS, aussi.

2voto

VisBits Points 101

Centreon surmonte Nagios, Nagios couplé avec NRPE. Vous pouvez ensuite écrire des scripts personnalisés pour rapporter des données dans n'importe quel format que vous souhaitez à NRPE. Nagios récupère ensuite les données des serveurs distants avec NRPE et Centreon crée un joli graphique et ajoute une tonne de flexibilité utilisateur. Nous l'utilisons sur http://beyondhosting.net. J'ai déjà un modèle de conteneur VZ avec centreon+nagios configuré si vous le souhaitez.

Graphiques que Centreon génère hostthenpost.org/tyler/2010-07-23_1719.png

2voto

Janne Pikkarainen Points 31244

Peut-être que le bon vieux OProfile fait ce dont vous avez besoin? C'est un profileur au niveau du système basé sur le noyau avec seulement un faible surcoût (quelques pourcents).

Ensuite, il y a un excellent script Perl, PSMon, qui vous permet de définir toutes sortes de limites CPU/mémoire. Si elles sont dépassées, psmon enregistrera une erreur et/ou tuera le processus fautif.

Ce dernier ne vous fournira pas de rapports de profilage, mais s'il décide de tuer le même processus encore et encore, vous avez probablement trouvé le salopard que vous cherchiez. :-)

2voto

Rajat Points 3311

http://studyhat.blogspot.com/2010/08/user-activity-view-processes-display.html

avoir un regard sur le petit code du lien ci-dessus qui vous donne la sortie de la mémoire cpu, etc.

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