J'ai vérifié quelques programmes tels que htop ou top command mais je n'ai trouvé aucune fonctionnalité permettant de se connecter à la minute.
Y at-il un moyen de faire cela pour le suivi des problèmes de mémoire?
edit: J'utilisais linode et j'ai décidé d'utiliser Longview.
Installez et configurez le paquetage sysstat
, qui fait exactement ce que vous demandez.
Sudo apt-get install sysstat
vmstat -S M 60
ferait l'affaire (en mégaoctets).
Vous devez seulement vous rappeler que réellement libre RAM est "libre + cache + buf".
Pour la journalisation, il peut être judicieux d’imprimer l’horodatage qui peut être réalisé de différentes manières, par exemple. g.:
vmstat -nS M 60 | while read _vmstat; do echo $(date --rfc-3339=seconds) $_vmstat; done
Si je faisais cela, je ferais probablement un script avec RRDtool .
RRDtool est conçu pour la collecte de données par intervalles, puis pour la création de graphiques à l'arrière des données. Si vous avez déjà vu un graphe net sur un panneau de commande d'un fournisseur d'accès à Internet, cela a probablement été fait avec RRDtool.
Comment vous l'implémentez, c'est à vous de décider. Il existe des solutions "pures" avec cron mais il y a aussi des options Nice Python et Perl qui circulent également:
https://github.com/icc/rrdtool-bash-scripts/blob/master/memory.sh
Autant que je sache, ceci met à jour une image dans un emplacement déterminé. Cela pourrait se trouver sur votre serveur Web ou sur NFS dans votre répertoire personnel.
http://coreygoldberg.blogspot.co.uk/2008/05/python-rrdpy-round-robin-databases.html
Cela tient sa propre minuterie et fait à peu près tout ce que vous aimez. Je préfère cela à la merde parce que c’est plus facile de fouiller, mais peu importe ce qui flotte. Il est probablement plus difficile pour un non-Pythoniste de se configurer.
Si vous voulez beaucoup plus que cela, consultez Munin. Cela utilise abondamment RRDtool pour enregistrer toute une charge de données système et générer des pages HTML statiques à un intervalle défini.
Il y a une autre façon de faire cela. En utilisant des tâches cron, nous pouvons obtenir cela.
* * * * * username /path/to/./script.sh
le script est simplement
#!/bin/bash
echo "$(date +%Y%m%d-%H%M%S) $(free -mt | awk 'END{print $4}')" >> ~/memlog.txt
avant de placer le script faire
chmod +x script.sh
alors créez le script ci-dessus et faites-le comme je l'ai dit puis placez le script à l'emplacement/usr/bin. puis ouvrez votre /etc/crontab
avec
Sudo nano /etc/crontab
et placez la première ligne là-bas. Ce script s'exécute à chaque minute et donne des détails de mémoire pour chaque minute.
Donc, finalement, ce fichier log.txt contiendra les détails du journal de la mémoire pour chaque minute.
et j'ai encore une information utile pour vous
watch cat log.txt
affichera le fichier log.txt dans le terminal et mettra à jour le contenu live.so dans le terminal actuel, en tapant une fois, vous pourrez avoir une surveillance en direct du fichier log.txt.
Voici mon truc. Avec cette commande, j'ajoute des rapports de free, vmstat et top dans des fichiers txt toutes les 5 secondes.
watch -n 5 'free -mt >> free-report.txt && vmstat -S M >> vm-report.txt && top -b -n1 >> top-report.txt'