Bei der Fehlerbehebung bei System- oder Anwendungsverlangsamung oder Fehlverhalten ist eines der ersten Dinge, die überprüft werden müssen, die Systemspeicherauslastung.
Dieser Artikel erklärt, wie Sie die RAM-Nutzung unter Linux mit verschiedenen Befehlen überprüfen können.
free
Befehl #
free
ist der am häufigsten verwendete Befehl zum Überprüfen der Speichernutzung eines Linux-Systems. Es zeigt Informationen über den gesamten, belegten und freien Speicher an.
Im Allgemeinen free
wird mit dem -h
aufgerufen Option, die bedeutet, dass die Ausgabe in einem für Menschen lesbaren Format gedruckt wird:
free -h
total used free shared buff/cache available
Mem: 3936 1087 252 130 2596 2427
Swap: 0 0 0
Hier ist, was jede Spalte bedeutet:
- insgesamt - Die Gesamtspeichermenge, die von den Anwendungen verwendet werden kann.
- verwendet - Verwendeter Speicher. Er wird wie folgt berechnet:
used = total - free - buffers - cache
- kostenlos - Freier / unbenutzter Speicher.
- geteilt - Diese Spalte kann ignoriert werden; es wird nur aus Gründen der Abwärtskompatibilität angezeigt.
- buff/cache - Der kombinierte Speicher, der von den Kernelpuffern und dem Seitencache und den Slabs verwendet wird. Dieser Speicher kann bei Bedarf jederzeit von den Anwendungen zurückgefordert werden.
- verfügbar - Eine Schätzung des Speichers, der zum Starten neuer Anwendungen ohne Austausch zur Verfügung steht.
Der free
Befehl gibt Informationen für den physischen Speicher und den System-Swap aus.
top
Befehl #
top
ist ein Befehlszeilendienstprogramm, das Echtzeitinformationen über die laufenden Prozesse anzeigt. Es zeigt auch die Systemzusammenfassung, einschließlich der Speichernutzung.
Um den Befehl aufzurufen, geben Sie einfach top
ein :
top
Die Ausgabe sieht in etwa so aus:
Der Header der Ausgabe enthält Informationen über den gesamten, freien und belegten physischen und Auslagerungsspeicher des Systems.
Der %MEM
Spalte gibt Auskunft über den belegten Anteil des verfügbaren physikalischen Speichers für jeden laufenden Prozess.
/proc/meminfo
#
Der einfachste Weg, die RAM-Speichernutzung zu überprüfen, besteht darin, den Inhalt von /proc/meminfo
anzuzeigen virtuelle Datei. Diese Datei wird von free
verwendet , top
, ps
, und andere Systeminformationsbefehle.
Verwenden Sie less
oder cat
um den Inhalt von /proc/meminfo
anzuzeigen Datei:
cat /proc/meminfo
Die Datei enthält eine große Menge an Informationen über die Speicher- und Auslagerungsnutzung des Systems:
MemTotal: 4030592 kB
MemFree: 401804 kB
MemAvailable: 2507504 kB
...
Die Informationen aus /proc/meminfo
Datei kann geparst und in Shell-Skripten verwendet werden.
ps_mem
Skript #
ps_mem
ist ein Python-Skript, das die RAM-Speichernutzung pro Programm meldet. Es funktioniert sowohl mit Python 2 als auch 3 und kann mit pip
installiert werden :
sudo pip3 install ps_mem
Ausführen von ps_mem
erfordert Administratorrechte:
sudo ps_mem
Die Ausgabe enthält die Speichernutzung jedes laufenden Programms in aufsteigender Reihenfolge:
Private + Shared = RAM used Program
...
11.9 MiB + 20.2 MiB = 32.1 MiB nginx (4)
8.2 MiB + 42.4 MiB = 50.6 MiB systemd-journald
55.8 MiB + 307.2 MiB = 363.0 MiB php-fpm7.4 (6)
233.9 MiB + 234.0 MiB = 467.9 MiB redis-server
578.2 MiB + 578.6 MiB = 1.1 GiB mysqld
---------------------------------
2.2 GiB
=================================
Dieses Skript ist nützlich, wenn Sie herausfinden möchten, welches laufende Programm den größten Teil Ihres Systemspeichers beansprucht.
Schlussfolgerung #
Wir haben Ihnen mehrere Befehle gezeigt, mit denen Sie die Systemspeicherauslastung überprüfen können.
Wenn Sie Fragen oder Anmerkungen haben, hinterlassen Sie bitte unten einen Kommentar.