Bei der Fehlerbehebung bei Verlangsamung oder Fehlverhalten von Systemen oder Anwendungen ist die Speichernutzung des Systems eines der ersten Dinge, die überprüft werden müssen.
In diesem Artikel wird erläutert, wie Sie die RAM-Auslastung unter Linux mit verschiedenen Befehlen überprüfen.
free Command #
free
ist der am häufigsten verwendete Befehl zum Überprüfen der Speichernutzung eines Linux-Systems. Es zeigt Informationen über den gesamten, verwendeten und freien Speicher an.
Im Allgemeinen wird free
mit der -h
Option aufgerufen, die die Ausgabe im lesbaren Format ausgibt:
free -h
total used free shared buff/cache availableMem: 3936 1087 252 130 2596 2427Swap: 0 0 0
Hier ist, was jede Spalte bedeutet:
- total – Die Gesamtmenge an Speicher, die von den Anwendungen verwendet werden kann.
- used – Verwendeter Speicher. Es wird berechnet als:
used = total - free - buffers - cache
- frei – Freier / unbenutzter Speicher.
- shared – Diese Spalte kann ignoriert werden; sie wird nur aus Gründen der Abwärtskompatibilität angezeigt.
- buff/cache – Der kombinierte Speicher, der von den Kernelpuffern und dem Seitencache und den Platten verwendet wird. Dieser Speicher kann jederzeit bei Bedarf von den Anwendungen zurückgewonnen werden.
- available – Eine Schätzung des Speichers, der zum Starten neuer Anwendungen ohne Austausch verfügbar ist.
Der Befehl free
gibt Informationen für den physischen Speicher und den System-Swap aus.
top Command #
top
ist ein Befehlszeilenprogramm, 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:
free -h
Die Ausgabe sieht ungefähr so aus:
Der Header der Ausgabe enthält Informationen über den gesamten, freien und verwendeten physischen Speicher und den Auslagerungsspeicher des Systems.
Die %MEM
Spalte enthält Informationen über den verwendeten Anteil des verfügbaren physischen Speichers für jeden laufenden Prozess.
/proc/meminfo #
Der einfachste Weg, die RAM-Speichernutzung zu überprüfen, besteht darin, den Inhalt der /proc/meminfo
virtuellen Datei anzuzeigen. Diese Datei wird von den Befehlen free
top
ps
und anderen Systeminformationen verwendet.
Verwenden Sie less
oder cat
, um den Inhalt der /proc/meminfo
-Datei anzuzeigen:
cat /proc/meminfo
Die Datei enthält eine große Menge an Informationen über den Systemspeicher und die Auslagerungsnutzung:
MemTotal: 4030592 kBMemFree: 401804 kBMemAvailable: 2507504 kB...
Die Informationen aus der /proc/meminfo
Datei können analysiert und in Shell-Skripten verwendet werden.
ps_mem Script #
ps_mem
ist ein Python-Skript, das die RAM-Speichernutzung pro Programm meldet. Es funktioniert sowohl mit Python 2 als auch mit Python 3 und kann mit installiert werden pip
:
sudo pip3 install ps_mem
Ausführen ps_mem
erfordert Administratorrechte:
sudo ps_mem
Die Ausgabe enthält die Speichernutzung jedes laufenden Programms in aufsteigender Reihenfolge:
Private + Shared = RAM usedProgram... 11.9 MiB + 20.2 MiB = 32.1 MiBnginx (4) 8.2 MiB + 42.4 MiB = 50.6 MiBsystemd-journald 55.8 MiB + 307.2 MiB = 363.0 MiBphp-fpm7.4 (6)233.9 MiB + 234.0 MiB = 467.9 MiBredis-server578.2 MiB + 578.6 MiB = 1.1 GiBmysqld--------------------------------- 2.2 GiB=================================
Dieses Skript ist nützlich, wenn Sie herausfinden möchten, welches laufende Programm den größten Teil Ihres Systemspeichers beansprucht.
Fazit #
Wir haben Ihnen einige Befehle gezeigt, mit denen Sie die Systemspeicherauslastung überprüfen können.