So überprüfen Sie die Speichernutzung unter Linux
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.
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
Jede Zeile der Datei /proc/meminfo besteht aus einem Parameternamen, gefolgt von einem Doppelpunkt, dem Parameterwert und einer Optionsmesseinheit. Zum Beispiel „kB“.
Speicherauslastungsparameter verstehen
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
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
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
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
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:
- 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
- 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.
RSS Feed ➔ Wöchentlicher E-Mail-Newsletter ➔
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 |