Dezember 17, 2021

So überprüfen Sie die Speichernutzung unter Linux

Siehe alle GNU / Linux-bezogenen FAQ

Wie überprüfe ich die Speichernutzung unter Linux mithilfe von Befehlszeilen- und GUI-Optionen?
Wir haben physischen Arbeitsspeicher wie 16 GB und Swap-Speicher. Swap-Speicher ist nichts anderes als Speicherplatz, der es Ihrem Linux-Computer ermöglicht, mehr Anwendungen gleichzeitig auszuführen, als in den Systemspeicher (RAM) passen. Auf dieser Seite werden verschiedene Befehle zum Überprüfen der Speichernutzung und -nutzung unter Linux mithilfe von Befehlszeilen- und GUI-Tools erläutert.

WERBUNG

Befehle zum Überprüfen der Speichernutzung unter Linux

Ihr Linux-System muss auf einem optimalen Niveau laufen. Speicher spielt eine entscheidende Rolle in einem Linux-System. Ein Entwickler oder erfahrener Systemadministrator muss die Gesamtmenge des freien und verwendeten physischen Speichers einschließlich des Auslagerungsspeichers im Server kennen. Es wäre am besten, wenn Sie auch die vom Kernel verwendeten Puffer und Caches im Auge behalten würden.

Die /proc/meminfo-Datei

Die /proc/meminfo-Datei meldet Statistiken über die Speichernutzung unter Linux. Verwenden Sie den Befehl cat / less oder den Befehl grep / egrep wie folgt auf Ihrer Linux-Box:
cat /proc/meminfo
more /proc/meminfo

 Überprüfen der Speichernutzung unter Linux
Jede Zeile der Datei /proc/meminfo besteht aus einem Parameternamen, gefolgt von einem Doppelpunkt, dem Parameterwert und einer Optionsmesseinheit. Zum Beispiel „kB“.

Speicherauslastungsparameter verstehen

Felder Beschreibung Tabelle
Parameter Beschreibung
MemTotal Insgesamt nutzbarer RAM (d.h., physischer RAM minus ein paar reservierte Bits und der Kernel-Binärcode).
MemFree Die Summe von LowFree+HighFree.
MemAvailable (seit Linux 3.14) Eine Schätzung, wie viel Speicher zum Starten neuer Anwendungen verfügbar ist, ohne zu tauschen.
Puffer Relativ temporärer Speicher für rohe Festplattenblöcke, die nicht enorm groß werden sollten (20 MB oder so).
Zwischengespeichert In-Memory-Cache für Dateien, die von der Festplatte gelesen werden (der Seitencache). Enthält SwapCached nicht.
SwapCached Speicher, der einmal ausgelagert wurde, wird wieder eingelagert, befindet sich aber immer noch in der Auslagerungsdatei.
Aktiver Speicher, der in jüngerer Zeit verwendet wurde und normalerweise nicht zurückgewonnen wird, es sei denn, dies ist unbedingt erforderlich.
Inaktiver Speicher, der in letzter Zeit weniger verwendet wurde. Es ist besser geeignet, für andere Zwecke zurückgefordert zu werden.
HighTotal Gesamtmenge von highmem. Highmem ist der gesamte Speicher über ~ 860 MB physischem Speicher. Highmem-Bereiche werden von User-Space-Programmen oder für den Seitencache verwendet. Der Kernel muss Tricks verwenden, um auf diesen Speicher zuzugreifen, wodurch der Zugriff langsamer wird als bei lowmem.
HighFree Menge des freien highmem.
LowFree Menge an freiem lowmem.
SwapTotal Gesamtmenge des verfügbaren Swap-Speicherplatzes.
SwapFree Menge des Swap-Speicherplatzes, der derzeit nicht verwendet wird.
Schmutziger Speicher, der darauf wartet, wieder auf die Festplatte geschrieben zu werden.
Writeback Speicher, der aktiv auf die Festplatte zurückgeschrieben wird.
AnonPages Nicht dateigestützte Seiten, die in User-Space-Seitentabellen abgebildet sind.
Mapped Dateien, die in den Speicher (mit mmap(2))mapped wurden, wie z.B. Bibliotheken.
Shmem Speicherverbrauch in tmpfs(5)-Dateisystemen.
KReclaimable Kernelzuweisungen, die der Kernel unter Speicherdruck zurückzufordern versucht. Enthält SReclaimable (unten) und andere direkte Zuweisungen mit einem Shrinker.
Slab Cache für Datenstrukturen im Kernel. (Siehe slabinfo(5).)
SReclaimable Teil der Platte, die zurückgewonnen werden könnte, wie Caches.
SUnreclaim Teil der Platte, der bei Speicherdruck nicht zurückgewonnen werden kann.
KernelStack Menge des Speichers, der Kernel-Stacks zugewiesen ist.
PageTables Speicher für die unterste Ebene der Seitentabellen.
NFS_Unstable NFS-Seiten, die an den Server gesendet, aber noch nicht für den stabilen Speicher festgelegt wurden.
Bounce Speicher für Blockgerät „Bounce-Puffer“ verwendet.
WritebackTmp Speicher, der von FUSE für temporäre Writeback-Puffer verwendet wird.
CommitLimit Dies ist die Gesamtmenge an Speicher, die derzeit auf dem System zugewiesen werden kann, ausgedrückt in Kilobyte. Diese Grenze wird nur eingehalten, wenn strict Overcommit Accounting aktiviert ist (Modus 2 in /proc/sys/vm/overcommit_memory). Der Grenzwert wird nach der unter /proc/sys/vm/overcommit_memory beschriebenen Formel berechnet.
Committed_AS Die Menge an Speicher, die derzeit auf dem System zugewiesen ist. Der festgeschriebene Speicher ist eine Summe des gesamten Speichers, der von Prozessen zugewiesen wurde, auch wenn er von diesen noch nicht „verwendet“ wurde. Ein Prozess, der 1 GB Speicher zuweist (mit malloc (3) oder ähnlichem), aber nur 300 MB dieses Speichers berührt, wird als nur 300 MB Speicher verwendend angezeigt, selbst wenn der Adressraum für die gesamten 1 GB zugewiesen ist. Diese 1 GB sind Speicher, der von der VM „festgeschrieben“ wurde und jederzeit von der zuweisenden Anwendung verwendet werden kann. Wenn strict overcommit auf dem System aktiviert ist (Modus 2 in /proc/sys/vm /overcommit_memory), sind Zuweisungen, die das CommitLimit überschreiten würden, nicht zulässig. Dies ist nützlich, wenn sichergestellt werden muss, dass Prozesse nicht aufgrund von Speichermangel fehlschlagen, sobald dieser Speicher erfolgreich zugewiesen wurde.
VmallocTotal Gesamtgröße des vmalloc-Speicherbereichs.
VmallocUsed Menge des verwendeten vmalloc-Bereichs. Seit Linux 4.4 wird dieses Feld nicht mehr berechnet und ist als 0 fest codiert. Siehe /proc/vmallocinfo.
VmallocChunk Größter zusammenhängender Block des vmalloc-Bereichs, der frei ist. Seit Linux 4.4 wird dieses Feld nicht mehr berechnet und ist als 0 fest codiert. Siehe /proc/vmallocinfo.
LazyFree Zeigt die von madvise(2) MADV_FREE markierte Speichermenge an.
AnonHugePages Nicht dateigestützte riesige Seiten, die in Seitentabellen im Benutzerbereich abgebildet sind.
ShmemHugePages Speicher, der von Shared Memory (shmem) und tmpfs (5) mit großen Seiten belegt wird
ShmemPmdMapped Gemeinsam genutzter Speicher, der dem Benutzerbereich mit großen Seiten zugeordnet ist.
CmaTotal Insgesamt CMA (Contiguous Memory Allocator) Seiten.
CmaFree Freie CMA-Seiten (Contiguous Memory Allocator).
HugePages_Total Die Größe des Pools großer Seiten.
HugePages_Free Die Anzahl der riesigen Seiten im Pool, die noch nicht zugewiesen sind.
HugePages_Rsvd Dies ist die Anzahl der riesigen Seiten, für die eine Zusage zur Zuweisung aus dem Pool gemacht wurde, aber noch keine Zuweisung vorgenommen wurde. Diese reservierten riesigen Seiten garantieren, dass eine Anwendung jederzeit eine riesige Seite aus dem Pool der riesigen Seiten zuweisen kann.
HugePages_Surap Dies ist die Anzahl der riesigen Seiten im Pool über dem Wert in /proc/sys/vm/nr_hugepages. Die maximale Anzahl überschüssiger großer Seiten wird von /proc/sys/vm/nr_overcommit_hugepages gesteuert.
Hugepagesize Die Größe großer Seiten.
DirectMap4k Anzahl der Bytes RAM, die vom Kernel linear in 4kB-Seiten abgebildet werden.
DirectMap4M Anzahl der Bytes RAM, die vom Kernel linear in 4 MB Seiten abgebildet werden.
DirectMap2M Anzahl der Bytes RAM, die vom Kernel linear in 2 MB Seiten abgebildet werden.
DirectMap1G x86 mit CONFIG_X86_64 und CONFIG_X86_DIRECT_GBPAGES aktiviert.

Wir können die Datei mit dem Befehl grep oder egrep wie folgt herausfiltern:
grep -E --color 'Mem|Cache|Swap' /proc/meminfo
 Linux proc Meminfo-Datei

free-Befehl zur Überprüfung der verwendeten und freien Speichernutzung verwenden

Die Ausgabe von /proc/meminfo ist leistungsstark, aber nicht benutzerfreundlich. Daher müssen wir den Befehl free verwenden. Der Befehl free zeigt die Menge an freiem und verwendetem Speicher im Linux-System an. Zum Beispiel:
free
Möchten Sie eine für Menschen lesbare Ausgabe sehen? Versuchen:
free -h
free --human

Beispielausgaben:

 total used free shared buff/cache availableMem: 94Gi 15Gi 672Mi 428Mi 78Gi 77GiSwap: 0B 0B 0B
Die angezeigten Spalten lauten wie folgt:
Spalte Beschreibung
gesamt Gesamt installierter Speicher
verwendet Verwendeter Speicher (berechnet als total – free – buffers – cache)
freier Ungenutzter Speicher (MemFree und SwapFree in /proc/meminfo)
shared Speicher, der hauptsächlich von tmpfs verwendet wird (Shmem in /proc/meminfo)
puffer Speicher, der von Kernelpuffern verwendet wird (Puffer in / proc/meminfo)
cache Vom Seitencache verwendeter Speicher und Platten (Zwischengespeichert und SReclaimable in / proc / meminfo)
buff/cache Summe aus Puffer und Cache
available Schätzung, wie viel Speicher zum Starten neuer Anwendungen verfügbar ist, ohne zu tauschen.

Wir können die Ausgabe des freien Befehls alle N Sekunden wiederholen. Drucken Sie beispielsweise die Ausgabe alle 5 Sekunden und beenden Sie sie nach zehn solcher Wiederholungen (Zählungen) auf dem Bildschirm:
free -s 5 -c 10
Wir können die Ausgabe des freien Befehls wie folgt steuern:
free
free -k
free -g
free -m

Steuerung der freien Befehlsausgabe
Option Ausgabe anzeigen in
– b, –bytes
— kilo Kilobyte
— mega megabyte
— giga Gigabyte
— tera Terabyte
— peta Petabyte
– k, –kibi kibibyte
– m, –mebi mebibytes
– g, –gibi gibibyte
— tebi tebibyte
— pebi pebibyte

vmstat-Befehl

Der Befehl vmstat ist leistungsstark und zeigt Informationen zu Linux-Hardware an, z:

  • Prozesse
  • Speicher
  • Paging
  • E / A blockieren
  • Fallen
  • Festplatten
  • CPU-Aktivität

Öffnen Sie das Terminal und geben Sie den folgenden Befehl ein:
vmstat
Beispielsitzung von meinem Ubuntu Linux Desktop:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11434840 2567516 10238916 0 0 26 75 142 55 13 5 82 0 0

Übergeben Sie das -w, um die breite Ausgabe auf dem Bildschirm anzuzeigen:
vmstat -w

procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11405404 2567988 10324528 0 0 26 75 142 58 13 5 82 0 0
FELDBESCHREIBUNG FÜR DEN VM-MODUS (Speicher und Swap)
Feld Beschreibung
swpd die Menge des verwendeten virtuellen Speichers.
free die Menge an Leerlaufspeicher.
buff die Speichermenge, die als Puffer verwendet wird.
cache die als Cache verwendete Speichermenge.
inact die Menge des inaktiven Speichers. (option-a)
active die Menge des aktiven Speichers. (option-a)
si Menge des von der Festplatte (n) ausgelagerten Speichers.
also Menge des auf die Festplatte getauschten Speichers (/ s).

befehl top und htop

Die Befehle top und htop bieten eine dynamische Echtzeitansicht eines laufenden Linux-Systems. Dazu gehören Informationen über:

Patreon supporters nur Führer 🤓
  • Keine Werbung und Tracking
  • Ausführliche Anleitungen für Entwickler und Systemadministratoren bei Opensourceflare✨
  • Treten Sie my Patreon bei, um unabhängige Ersteller von Inhalten zu unterstützen und die neuesten Anleitungen zu lesen:
    • Einrichten des Redis Sentinel Clusters unter Ubuntu oder Debian Linux
    • Einrichten von SSH-Schlüsseln mit YubiKey als Zwei–Faktor-Authentifizierung (U2F / FIDO2)
    • Einrichten des Mariadb Galera Clusters unter Ubuntu oder Debian Linux
    • Ein Podman-Tutorial für Anfänger – Teil I (Ausführen von Linux-Containern ohne Docker und 9380>
    • So schützen Sie Linux mit USBGuard vor bösartigen USB-Geräten
    • Wenn Ihre Domain keine E-Mails sendet, legen Sie diese DNS-Einstellungen fest, um Spoofing und Phishing zu vermeiden

Beitreten Patreon ➔

  • Hardware- und CPU-Auslastung
  • Linux-Betriebszeit
  • Speicher- und Swap-Auslastung
  • Systemprozesse und mehr

Bitte beachten Sie, dass das htop nicht standardmäßig installiert ist. Sie können es jedoch problemlos auf CentOS, Debian, Ubuntu und anderen Betriebssystemen installieren.

Führen Sie den folgenden Befehl aus:
top
htop

Bericht Speichernutzung mit Shared Memory proportional geteilt

Das SMEM-Tool Berichte:

  • Physische Speichernutzung unter Berücksichtigung gemeinsam genutzter Speicherseiten. Nicht freigegebener Speicher wird als USS (Unique Set Size) gemeldet.
  • Gemeinsam genutzter Speicher wird gleichmäßig auf die Prozesse aufgeteilt, die diesen Speicher gemeinsam nutzen.
  • Der nicht gemeinsam genutzte Speicher (USS) plus der Anteil des gemeinsam genutzten Speichers eines Prozesses wird als PSS (Proportional Set Size) angegeben.
  • Die USS und PSS beinhalten nur die physische Speichernutzung. Sie enthalten keinen Speicher, der auf die Festplatte ausgelagert wurde.
  • Speicher kann von einem Prozess, von einem Benutzer, durch Zuordnung oder systemweit gemeldet werden. Es stehen sowohl der Textmodus als auch die grafische Ausgabe zur Verfügung.

Man kann smem mit dem Befehl apt/apt-get auf einem Debian/Ubuntu Linux installieren:
sudo apt install smem
Führen Sie es wie folgt aus:
smem
# show whole system #
smem -w
# show meme usage about specifc user #
smem -u vivek
smem -u nginx
# get help #
man smem
smem --help

User Count Swap USS PSS RSS vivek 139 0 7593240 8210344 13017360

Überprüfen der Speichernutzung in Linux mit der GUI

System Monitor ist eine GUI-Linux-App, die Ihnen zeigt, welche Programme ausgeführt werden und wie viel Prozessorzeit, Speicher und Speicherplatz verwendet werden. Wir können den Systemmonitor aus der Aktivitätsübersicht öffnen. Drücken Sie die Super-Taste auf Ihrer Tastatur. Sie können Ihre Fenster und Anwendungen in der Übersicht sehen. Sie können auch einfach mit der Eingabe beginnen, um Ihre Anwendungen zu durchsuchen, z. B. Systemmonitor. Auf der Registerkarte Ressourcen erfahren Sie, wie viel Arbeitsspeicher (RAM) Ihres Computers verwendet wird. Um zu überprüfen, welche Prozesse den meisten Arbeitsspeicher verwenden: Klicken Sie auf die Registerkarte Prozesse. Klicken Sie auf die Speicherspaltenüberschrift, um die Prozesse nach Speichernutzung zu sortieren.

Weitere Informationen finden Sie in der Dokumentation.

Zusammenfassung

Sie haben gelernt, wie Sie die Auslastung des Linux-Arbeitsspeichers (RAM) unter Linux mithilfe von GUI- und CLI-Tools ermitteln.

🐧 Holen Sie sich die neuesten Tutorials zu Linux, Open Source & DevOps über
RSS Feed ➔ Wöchentlicher E-Mail-Newsletter ➔

WERBUNG

Kategorie Liste der Unix- und Linux-Befehle
Manager herunterladen wget
Dokumentation Hilfe * mandb • man • pinfo
Speicherplatzanalysatoren df * duf • ncdu • pydf
Dateiverwaltung cat * cp * weniger * mkdir * mehr * Baum
Firewall Alpine Awall * CentOS 8 * openSUSE • RHEL 8 * Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04
Linux-Desktop-Anwendungen Skype * Spotify • VLC 3
Moderne Dienstprogramme bat * exa
Netzwerk-Dienstprogramme NetHogs * dig • host • ip • nmap
OpenVPN CentOS 7 * CentOS 8 * Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04
Paketmanager apk • apt
Prozesse Management bg • chroot • cron • disown • fg • Blicke • gtop • iotop • Jobs • killall • kill • pidof • pstree • pwdx • Zeit • vtop
Suchen ag * grep • whereis • which
Shell builtins compgen * echo • printf
Textverarbeitung cut * rev
Benutzerinformationen Gruppen * ID • Nachname • last * lid/libuser-lid • logname * Mitglieder • Benutzer • whoami • wer • w
WireGuard VPN Alpine * CentOS 8 * Debian 10 * Firewall * Ubuntu 20.04

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.