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.