Echtzeitüberwachung des Arbeitsspeichers
Systemadministratoren müssen oft die Arbeitsspeicherauslastung im Laufe der Zeit überwachen, um Trends zu erkennen oder Probleme zu beheben. In diesem Schritt lernen Sie, wie Sie die Arbeitsspeicherauslastung in Echtzeit überwachen und ein einfaches Skript erstellen, um die Arbeitsspeicherauslastung in regelmäßigen Abständen zu protokollieren.
Verwendung des watch-Befehls mit free
Der watch
-Befehl ermöglicht es Ihnen, einen Befehl in regelmäßigen Abständen auszuführen und seine Ausgabe anzuzeigen. Dies ist sehr nützlich für die Echtzeitüberwachung der Arbeitsspeicherauslastung:
watch -n 2 free -h
Dieser Befehl führt free -h
alle 2 Sekunden aus und zeigt die aktualisierte Ausgabe an. Sie sollten sehen, wie sich die Arbeitsspeicherstatistiken in Echtzeit aktualisieren.
Um den watch-Befehl zu beenden, drücken Sie Strg+C
.
Verwendung von free mit Intervalloption
Der free
-Befehl selbst kann die Arbeitsspeicherauslastung in regelmäßigen Abständen anzeigen. Die Syntax lautet:
free -s [seconds] -c [count]
Dabei:
-s
gibt das Intervall in Sekunden zwischen den Aktualisierungen an
-c
gibt an, wie viele Aktualisierungen angezeigt werden sollen
Überwachen wir die Arbeitsspeicherauslastung alle 3 Sekunden für insgesamt 4 Aktualisierungen:
free -h -s 3 -c 4
Dies wird die Arbeitsspeicherstatistiken 4 Mal anzeigen, mit einer Pause von 3 Sekunden zwischen jeder Aktualisierung.
Erstellen eines Skripts zur Arbeitsspeicherüberwachung
Erstellen wir ein Skript, das die Informationen zur Arbeitsspeicherauslastung in regelmäßigen Abständen protokolliert. Zunächst erstellen Sie eine neue Skriptdatei:
nano ~/project/memory_data/memory_monitor.sh
Fügen Sie der Datei den folgenden Inhalt hinzu:
#!/bin/bash
## Erstellen einer Protokolldatei mit aktuellem Datum und Uhrzeit
log_file=~/project/memory_data/memory_log_$(date +%Y%m%d_%H%M%S).txt
## Schreiben der Überschrift in die Protokolldatei
echo "Memory Usage Log - Started at $(date)" > $log_file
echo "Monitoring every 5 seconds for 5 readings" >> $log_file
echo "----------------------------------------" >> $log_file
## Fünfmalige Schleife, Erfassung der Arbeitsspeicherinformationen alle 5 Sekunden
for i in {1..5}; do
echo "Reading $i - $(date)" >> $log_file
free -h >> $log_file
echo "----------------------------------------" >> $log_file
sleep 5
done
echo "Monitoring completed at $(date)" >> $log_file
echo "Log saved to $log_file"
Speichern Sie die Datei, indem Sie Strg+O
und dann Enter
drücken, und verlassen Sie nano mit Strg+X
.
Machen Sie nun das Skript ausführbar:
chmod +x ~/project/memory_data/memory_monitor.sh
Führen Sie das Skript aus:
~/project/memory_data/memory_monitor.sh
Das Skript wird etwa 25 Sekunden lang (5 Sekunden × 5 Messungen) laufen und eine Protokolldatei mit Informationen zur Arbeitsspeicherauslastung erstellen. Nach Abschluss des Skripts sehen Sie eine Meldung, die angibt, wo die Protokolldatei gespeichert ist.
Um die Protokolldatei anzuzeigen:
cat ~/project/memory_data/memory_log_*
Diese Protokolldatei zeigt, wie sich die Arbeitsspeicherauslastung im Laufe der Zeit ändert, was für die Behebung von Arbeitsspeicherproblemen oder das Verständnis von Arbeitsspeicherverbrauchsmustern wertvoll ist.