Je cherche un moyen de diagnostiquer des problèmes, tels que la mort par échange, où un processus de mémoire de ballon remplit l'échange et tue toute la machine (comme Apache).
J'utilise déjà des cactus et je peux configurer des nagios (mais je préfère ne pas le faire) ou des munins, mais pour autant que je sache, ils ne peuvent pas enregistrer l'utilisation des programmes individuels - juste le statut général.
Je sais que je peux rouler un script >> dans un fichier toutes les 30 secondes, mais j'aimerais voir si une solution mature existante existe déjà.
Encore une fois, idéalement, cela:
- enregistrer l'utilisation de la mémoire des processus toutes les N secondes
- enregistrer l'utilisation du processeur des processus toutes les N secondes
- graphiques et historique du support
- moyennes de support - comme mysqld a utilisé 43% de CPU au cours du dernier jour et en moyenne 400 Mo de mémoire
- être libre et open source
Les noms des processus ne sont pas et ne devraient pas être connus à l'avance - l'idée est simplement de le laisser surveiller et de jeter un coup d'œil aux principaux délinquants.
Mon système est Linux (OpenSUSE).
la source
Réponses:
Si vous ne voulez que les meilleurs délinquants, envisagez de courir
top
avec un intervalle relativement long (60 secondes et plus) en mode batch. Vous devrez peut-être plus d'unetop
exécution pour capturer les principaux délinquants sur plusieurs ressources. J'ai configuré des systèmes pour qu'ils fonctionnenttop
pendant quelques cycles lorsqu'une ressource était surutilisée.Pensez à exécuter
sar
en mode batch pour capturer l'utilisation des ressources. Je me rends compte que cela est basé sur le serveur, mais il est utile de déterminer les moments où des problèmes se produisent.Exécutez
munin
et activez les notifications. Cela peut vous donner une chance d'entrer et de regarder le serveur 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. Une fois, j'ai vu un serveur mourir lentement pendant plusieurs jours. Le service de problème était un programme surveillant d'autres processus pour les fuites de mémoire. L'administrateur système n'a cessé d'insister sur le fait que l'utilisation croissante des swaps n'était pas un problème, jusqu'à ce que le serveur cesse de répondre.
Vous pouvez constater que
cfengine
la détection d'anomalie peut être utilisée pour déclencher un script pour capturer l'état du système lorsque les choses tournent mal. Vous voudrez peut-être beaucoup d'informations en plus des processus utilisant le plus de ressources. Pour un afflux soudain d'utilisation, vous souhaiterez peut-être une liste de connexions réseau (par adresse et non par nom). L'utilisation de la mémoire est également utile.la source
sysstat est fait à peu près exactement pour votre type d'objectif.
la source
Je l'ai utilisé au sommet avant:
http://freshmeat.net/projects/atop/
"Atop est un moniteur de performances plein écran ASCII qui est capable de signaler l'activité de tous les processus (même si les processus se sont terminés pendant l'intervalle), la journalisation quotidienne du système et l'activité des processus pour une analyse à long terme, mettant en évidence les ressources système surchargées en utilisant couleurs, etc. À intervalles réguliers, il affiche l'activité au niveau du système liée au processeur, à la mémoire, au swap, aux disques et aux couches réseau, et pour chaque processus actif, il montre l'utilisation du processeur, la croissance de la mémoire, la priorité, le nom d'utilisateur, l'état, et quitter le code. "
la source
atop -r log_filename
, appuyez surm
pour basculer vers la vue d'utilisation de la mémoire par processus, puis appuyez surt
pour avancer par incréments de 10 minutes jusqu'à 3:40. Vous pouvez en savoir plus sur les bases de l'utilisation de atop sur lwn.net/Articles/387202 et voir un exemple d'identification d'une fuite de mémoire sur atoptool.nl/download/case_leakage.pdfAvez-vous essayé collectd?
C'est très puissant et personnalisable.
A beaucoup de plugins et pourrait être intégré avec nagios.
http://collectd.org/features.shtml
la source
top
.Centreon au sommet de Nagios, Nagios couplé avec NRPE. Vous pouvez ensuite écrire des scripts personnalisés pour signaler les données dans N'IMPORTE QUEL format que vous souhaitez à NRPE. Nagios interroge ensuite les données des serveurs distants avec NRPE et Centreon fait 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 la configuration centreon + nagios si vous le souhaitez.
Graphes centreon builds hostthenpost.org/tyler/2010-07-23_1719.png
la source
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 à mettre dans les rapports. Si vous le recherchez sur Google, il existe un wiki IBM qui contient un tas de documentation et des utilitaires supplémentaires pour analyser les données.
la source
La densité de serveur fait exactement ce que vous décrivez.
Je l'utilise sur l'un de nos serveurs de production et j'en suis très content. Sa fonctionnalité principale est la possibilité d'afficher des graphiques, de cliquer sur un pic et de voir la consommation CPU / mémoire du serveur à l'heure actuelle, y compris tous les processus en cours d'exécution. Ils appellent cela des instantanés .
Il s'améliore constamment. L'une des dernières fonctionnalités est la détection des anomalies , qui vous permet de détecter facilement les anomalies. Vous pouvez également configurer différents seuils
la source
http://studyhat.blogspot.com/2010/08/user-activity-view-processes-display.html
regardez ci-dessus le petit code de lien qui vous donne plus de mémoire, etc.
la source
Les réponses suggérées lorsque j'ai posé une question similaire :
Icapan a déclaré :
David Spillet a déclaré :
Vous pouvez également vérifier Nagios ou OpenNMS .
la source
Munin fera tout ce dont vous avez besoin hors de la boîte sans nécessiter Nagios ou tout autre outil. Des RPM sont disponibles pour OpenSUSE.
la source
Peut-être que le bon vieux OProfile fait ce dont vous avez besoin? Il s'agit d'un profileur de niveau système basé sur le noyau avec seulement une petite surcharge (quelques pourcentages).
Ensuite, il y a un excellent script Perl, PSMon , qui vous permet de configurer toutes sortes de limites CPU / mémoire. Si ceux-ci sont dépassés, psmon enregistrera une erreur et / ou tuera le processus incriminé.
Ce dernier ne produirait aucun rapport de profilage pour vous, mais s'il décide de tuer le même processus encore et encore, vous avez probablement trouvé le salaud méchant que vous recherchiez. :-)
la source