web-dev-qa-db-fra.com

Comment enregistrer l'utilisation de la mémoire par minute sur Ubuntu Server?

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.

https://dl.dropboxusercontent.com/u/28301519/2013-04-18_231652.png

2
mirza

Installez et configurez le paquetage sysstat, qui fait exactement ce que vous demandez.

Sudo apt-get install sysstat
7
Mike Scott

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

3
poige

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:

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.

3
Oli

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.

3
rɑːdʒɑ

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'
1
user1922625