Eine Terminal-Eingabeaufforderung auf einem Linux-PC.

Fatmawati Achmad Zaenuri/Shutterstock

Das Linux |_+_| Befehl zeigt an, wie viel Speicher Ihres Computers belegt ist und wie viel noch für Programme verfügbar ist. Die Ausgabe kann für Uneingeweihte verwirrend sein, aber wir zeigen Ihnen, wie Sie sie verstehen.



Das kostenlose Kommando

Die |_+_| Befehl druckt eine kurze Zusammenfassung der Speichernutzung in einem Terminalfenster. es hat nicht viele möglichkeiten oder Tricks im Ärmel, und es braucht nicht viel Zeit oder Mühe, um zu lernen, wie man es benutzt. Zu lernen, die bereitgestellten Informationen richtig zu interpretieren, ist jedoch eine andere Geschichte. Es ist zu leicht, sich von dem zu verwirren, was |_+_| sagt es dir.

Dies liegt zum Teil an der Terminologie – wie dem Unterschied zwischen frei und verfügbar – und zum Teil an der inneren Funktionsweise der Speicher- und Dateisystemverwaltungsroutinen des Linux-Kernels. Wenn Sie freien Speicher haben, den der Kernel gut nutzen kann, wird er ihn für seine eigenen Zwecke ausleihen. Bis Sie es wieder brauchen.

Wir werden in die zugrunde liegenden Mechanismen und Datenroutinen eintauchen, damit Sie verstehen können, was unter der Haube vor sich geht und wie sich all das auf die Nutzung Ihres . auswirkt Arbeitsspeicher (RAM).

Die kostenlosen Spalten

Lass uns Feuer machen |_+_| ohne Optionen und sehen Sie, was wir bekommen:

free

Anzeige

Das ist hässlich umhüllt. Auf Ihrem Computer können Sie das Terminalfenster erweitern. Hier ist die Ausgabe in einer übersichtlicheren Tabelle:

free

Die Zahlen sind angegeben in kibibytes , das sind 1024 Byte. Auf Manjaro, dem |_+_| Befehl hat den Alias ​​|_+_|. Dies zwingt |_+_| benutzen Mebibyte , das sind 1.048.576 Byte. Bei anderen Distributionen ist der Standardwert Kibibyte.

Die obere Zeile gibt Auskunft über den Systemspeicher, die untere Zeile über den Auslagerungsspeicher. Wir werden die Spalten hier vorstellen und sie dann in Kürze genauer betrachten. Die Spalten für die Speicherzeile sind wie folgt:

    Gesamt: Die Gesamtmenge des in Ihrem Computer installierten physischen Arbeitsspeichers. Gebraucht: Dies wird berechnet durch |_+_|-(|_+_|+|_+_|+|_+_|). Kostenlos: Die Menge des ungenutzten Speichers. Warum gilt nicht Gesamt=Gebraucht+Kostenlos? Das erklären wir gleich. Geteilt: Speicher, der von |_+_| . verwendet wird Dateisystem. Buff / Cache: Speicher für Puffer und Cache verwendet. Erhältlich: Dies ist eine Schätzung des Speichers, der verfügbar ist, um Speicheranforderungen von Anwendungen, jeder anderen funktionierenden Software auf Ihrem Computer, wie z Desktop-Umgebung und Linux-Befehle.

Für die Swap-Zeile sind die Spalten:

    Gesamt: Die Größe der Auslagerungspartition oder Auslagerungsdatei. Gebraucht: Die Menge des verwendeten Swap-Speicherplatzes. Kostenlos: Der verbleibende (unbenutzte) Swap-Speicherplatz

Das breite Display

Um die |_+_| . zu trennen Zahlen in ihre eigenen Spalten, verwenden Sie die |_+_| (breit) Option:

free

Dies ist das Ergebnis. Anstelle eines |_+_| Spalte erhalten wir ein |_+_| Spalte und ein |_+_| Säule. Hier die Zahlen in einer Tabelle:

free

Sehen wir uns an, was die Zahlen in den Spalten darstellen.

Die Summenspalte

Dies ist das Einfache. Es ist, wie viel RAM Sie auf Ihrem Motherboard installiert haben. Dies ist die kostbare Ressource, um die alle laufenden Prozesse streiten. Zumindest würden sie kämpfen, wenn der Kernel nicht Schiedsrichter wäre.

Anzeige

Übrigens der Ort, an dem |_+_| bezieht seine Informationen aus dem |_+_| Pseudo-Datei. Sie können diese Datei mit folgendem Befehl selbst einsehen:

free

Die Ausgabe ist eine einzelne Liste von Namen und Werten.

Die verwendete Spalte

Hier beginnt es interessant zu werden.

Die |_+_| Die Zahl stellt das dar, was Sie wahrscheinlich erwarten würden, plus eine Menge anderer Dinge. Dies ist der Speicher, der Prozessen zugewiesen, von Benutzerprogrammen belegt und von Dingen wie dem GNOME oder WO Desktop-Umgebungen. Da gibt es keine Überraschungen. Aber es enthält auch die |_+_| und |_+_| Figuren.

RAM, das nicht für etwas verwendet wird, ist verschwendeter RAM. Der Kernel verwendet Reserve-RAM, um Caches und Puffer zu speichern, die es ihm ermöglichen, effizienter zu arbeiten. Dieser RAM wird also vom Kernel für etwas verwendet, aber nicht von irgendetwas in Benutzerbereich .

Wenn eine Speicheranforderung empfangen wird, die nur bedient werden kann, indem ein Teil des RAM freigegeben wird, den der Kernel für seine eigenen Geräte verwendet, geschieht dies nahtlos. Das Freigeben dieses RAM und die Verwendung für andere Anwendungen hat keinen Einfluss auf die korrekter Betrieb Ihres Linux-Systems – nichts geht kaputt – aber es könnte sich auf die Leistung vom System.

Diese Spalte bedeutet also wirklich den gesamten Arbeitsspeicher, der von etwas verwendet wird, auch wenn er sofort zurückgefordert werden kann.

Die freie Kolumne

Diese Spalte enthält die Zahl für die Menge an RAM, die von nichts verwendet wird. Weil die |_+_| Spalte die Puffer- und Cache-Zahlen enthält, ist es nicht ungewöhnlich, dass bei perfekt funktionierenden Linux-Systemen sehr wenig RAM als frei aufgeführt ist.

Anzeige

Das ist nicht unbedingt eine schlechte Sache und bedeutet mit ziemlicher Sicherheit, dass Sie ein völlig normal funktionierendes System haben, das die Verwendung von RAM korrekt regelt. Das heißt, der RAM wird von Anwendungen und anderen User-Space-Prozessen sowie vom Kernel verwendet, um die Leistung Ihres Computers so gut wie möglich zu machen.

Die gemeinsame Kolumne

Die Figur im |_+_| Spalte stellt Speicher dar, der dem Halten von |_+_| . gewidmet ist RAM-basierte Dateisysteme . Dies sind Dateisysteme, die im Speicher erstellt werden, um das effiziente Funktionieren des Betriebssystems zu erleichtern. Um zu sehen, welche |_+_| Dateisysteme vorhanden sind, verwenden Sie |_+_| Befehl .

Die von uns verwendeten Optionen sind:

  • |_+_| (Mensch): Verwenden Sie sinnvolle, am besten geeignete Einheiten.
  • |_+_|: Zeigt eine Zeile mit Summen am unteren Rand der Ausgabe an.
  • |_+_|: Nur über die |_+_| berichten Dateisysteme.
free -m

Das erste, was Ihnen beim Betrachten dieser Werte auffällt, ist, dass sie um ein Vielfaches größer sind als die Zahl im |_+_| Säule. Die hier angezeigten Größen sind die maximalen Größen dieser Dateisysteme. In Wirklichkeit belegen sie jeweils nur so viel Speicher, wie sie benötigen. Die Figur im |_+_| Spalte ist diejenige, die für die Speichernutzung zu glauben ist.

Was enthalten diese Dateisysteme? Hier ist eine kurze Aufschlüsselung:

    /Lauf: Dies enthält viele temporäre Dateien wie PID-Dateien , System Journaling, das nicht über Neustarts hinweg beibehalten werden muss, Informationen dazu Unix-Domain-Sockets , FIFOs , und die Geschäftsführung von Dämonen . /dev/shm: Dies ermöglicht die Implementierung von POSIX-konform Speicherverwaltung an Debian und von Debian abgeleitete Linux-Distributionen. /laufen/sperren: Dies hält Sperrdateien. Diese werden als Indikatoren verwendet, um dem System mitzuteilen, dass eine Datei oder eine andere gemeinsam genutzte Ressource verwendet wird. Sie beinhalten die PID des Prozesses diese Ressource verwenden. /sys/fs/cgroup: Dies ist ein zentrales Element des Schemas, das verwaltet Kontrollgruppen . Prozesse sind in hierarchische Gruppen entsprechend der Art der verwendeten Ressourcen organisiert. Sie erlaubt es, den Ressourcenverbrauch durch die Prozesse zu überwachen und zu begrenzen. /run/user/121: Dies ist ein Ordner erstellt von pam_systemd um temporäre Dateien für einen Benutzer zu speichern. In diesem Fall hat der Benutzer die ID 121. Beachten Sie, dass der Benutzer ein normaler Benutzer, ein Daemon oder ein anderer Prozess sein kann. /run/user/1000: Dies ist ein Ordner |_+_| durch pam_systemd um temporäre Dateien für diesen Benutzer mit der Benutzer-ID 1000 zu speichern. Dies ist der aktuelle Benutzer, Benutzer dave.

Die Puffer- und Cache-Spalten

Die |_+_| und |_+_| Spalten erscheinen nur, wenn Sie die |_+_| . verwendet haben (weit). Ohne – |_+_| Option werden die Zahlen aus diesen beiden Spalten zu den |_+_| Säule.

Anzeige

Diese beiden Speicherbereiche interagieren und sind voneinander abhängig. Der Cache-Bereich enthält (hauptsächlich) Daten das wurde von der Festplatte gelesen . Sie bleibt erhalten, falls Sie erneut darauf zugreifen müssen. Es ist schneller, die Daten aus dem Cache zu ziehen, als sie von der Festplatte zurückzulesen. Der Cache kann auch Daten enthalten, die geändert, aber noch nicht auf die Festplatte zurückgeschrieben wurden, oder Werte, die berechnet und noch nicht in einer Datei gespeichert wurden.

Um die verschiedenen Dateifragmente und Datenspeicher zu verfolgen, erstellt der Kernel einen Index zum Cache-Speicherbereich im Pufferspeicherbereich. Puffer sind Teile des Speichers, die Plattenblöcke und andere Informationsstrukturen enthalten. Diese enthalten Daten über die Daten, die im Cache-Speicherbereich gehalten werden. Die Puffer sind also Metadaten für den Cache.

Wenn eine Dateileseanforderung gestellt wird, liest der Kernel die Daten in den Pufferdatenstrukturen und sucht nach der angeforderten Datei oder dem angeforderten Dateifragment. Wenn sie gefunden wird, wird die Anforderung von dem Cache-Speicherbereich bedient, auf den die Pufferdatenstrukturen zeigen. Wenn sie nicht im Cache vorhanden ist – und auch nicht in den Metadaten im Pufferspeicherbereich – wird die Datei von der Festplatte gelesen.

Die Strukturen im Pufferspeicherbereich sind:

    Pufferköpfe: Jeder Puffer wird in a . beschrieben Datenblock, genannt Pufferkopf . Auch wenn die Daten im Block geändert werden und die zugehörige Speicherseite verschmutzt ist, verfolgt der Deskriptor die Notwendigkeit, die Daten zurück auf die Festplatte zu schreiben. Inoden: Inoden halten Metadaten über Dateien und Verzeichnisse , einschließlich der Position auf der Festplatte (oder des virtuellen Dateisystems), der Dateigröße und der Zeitstempel der Datei. Zahnfleisch: Ein Dentry (Verzeichniseintrag) ist eine Struktur, die enthält Verzeichniseintragsinformationen . Stellen Sie sich diese als eine Liste von Inodes für die Dateien und Verzeichnisse innerhalb eines Verzeichnisses vor.

Sie sehen, warum es sinnvoll ist, den für die Puffer- und Cachespeicherbereiche verwendeten Speicher in einem einzigen |_+_| . zu verdichten Säule. Sie sind wie zwei Teile derselben Sache. Der Cache-Speicherbereich wäre nutzlos, ohne dass der Pufferspeicherbereich einen Index für seinen Inhalt bereitstellt.

Die verfügbare Spalte

Die verfügbare Spalte ist die Summe der |_+_| Spalte plus die Teile der |_+_| und Cache-Spalten (oder die |_+_|-Spalte), die aufgegeben werden können sofort . Die |_+_| Spalte ist eine Schätzung, keine genaue Zahl. Es handelt sich um eine fundierte Schätzung und eine genaue Schätzung, die jedoch nicht bis zum letzten Byte so genau sein sollte.

Ändern der Anzeigeeinheiten

Um die Einheiten zu ändern, in denen die Figuren frei angezeigt werden, verwenden Sie eine der folgenden Optionen.

facetime auf pc windows 10
    -B: Zeigt die Werte in Bytes an. -zu: Zeigt die Werte in Kibibytes an (Standardeinstellung). -m: Zeigt die Werte in Mibibyte an. -g: Zeigt die Werte in Gibibyte an. -h: Zeigt die Werte in sinnvollen, am besten geeigneten Einheiten (menschlich lesbar) an.
Anzeige

Um beispielsweise für Menschen lesbare Werte zu verwenden, verwenden Sie |_+_| Möglichkeit:

free

|_+_| verwendet für jeden Wert die am besten geeignete Einheit. Wie Sie sehen, werden einige der Werte in MiB und einige in GiB angezeigt.

Summe anzeigen

Die |_+_| Option bewirkt, dass free eine Summenzeile anzeigt, die die Werte aus |_+_|, |_+_| und |_+_| . summiert Spalten des Mem und |_+_| Linien.

Total

Die Zähloption

Die |_+_| (zählen) Option sagt |_+_| eine bestimmte Anzahl von Malen laufen, mit einer Pause von einer Sekunde dazwischen. |_+_| . haben zweimal ausführen, verwenden Sie diesen Befehl:

Free

Kontinuierlich frei laufen

Wenn Sie sehen möchten, wie sich eine bestimmte Anwendung auf Ihre Speichernutzung auswirkt, kann es hilfreich sein, |_+_| . zu verwenden läuft ununterbrochen. Damit kannst du |_+_| . ausführen in einem Terminalfenster, während Sie die zu untersuchende Anwendung starten, verwenden und dann schließen.

Die |_+_| (Sekunden) Option bestimmt die Dauer der Pause zwischen jedem Durchlauf von |_+_|. Verwenden Sie diesen Befehl, um kontinuierlich mit einer dreisekündigen Pause zwischen jedem Update frei zu laufen:

Buffers

Anzeige

Drücken Sie |_+_| um den Vorgang zu stoppen und zur Eingabeaufforderung zurückzukehren.

Kombinieren der Optionen „Zähler“ und „Sekunden“

|_+_| . haben mit einer bestimmten Pause zwischen jedem Update ausführen, aber nach einer bestimmten Anzahl von Berichten stoppen, kombinieren Sie die |_+_| (Sekunden) und |_+_| (zählen) Optionen. |_+_| . haben fünfmal mit einer Pause von zwei Sekunden zwischen jedem Update ausführen, verwenden Sie diesen Befehl:

Cache

Nachdem die fünf Updates erschienen sind, beendet sich der Prozess selbst und Sie kehren zur Eingabeaufforderung zurück.

Trennen von niedrigem und hohem Speicher

Dies nützt heutzutage wenig, aber wenn Sie Linux auf einem 32-Bit-Computer ausführen, kann es sich als nützlich erweisen. Es trennt die Speichernutzung von niedrigem Speicher und hohem Speicher.

Auf einem 32-Bit-Linux-basierten Betriebssystem kann die CPU maximal 4 GB Speicher adressieren. Der Speicher ist in Low-Memory und High-Memory unterteilt. Niedriger Speicher wird direkt auf den Teil des Adressraums des Kernels abgebildet. High Memory hat kein direktes Kernel-Mapping. High Memory ist normalerweise alles über 896 MB.

Anzeige

Das bedeutet, dass der Kernel selbst (einschließlich seiner aktiven Module) nur wenig Speicher nutzen kann. Benutzerprozesse – alles, was nicht der Kernel selbst ist – können potenziell niedrigen und hohen Speicher verwenden.

Auf einem 64-Bit-Computer werden keine Werte für hohen Speicher angezeigt:

tmpfs

Daraus werden Erinnerungen gemacht

Eine kurze Zusammenfassung:

    Gesamt: Die Menge an RAM, die in Ihrem System installiert ist. Gebraucht: Gleich |_+_|-(|_+_|+|_+_|+|_+_|). Kostenlos: Die Menge an Speicher, die von irgendetwas vollständig ungenutzt ist. Geteilt: Speicherverbrauch der |_+_| Dateisysteme. Puffer: Die Datenstrukturen, die gepflegt werden, um einen Index für alles bereitzustellen, was in |_+_| gespeichert ist. Zwischenspeicher: Von der Festplatte gelesene Daten, geänderte Daten, die darauf warten, auf die Festplatte zurückgeschrieben zu werden, und andere berechnete Werte. Erhältlich: Was ist wirklich kostenlos. Eine Schätzung des Speichers in |_+_|, |_+_| und |_+_| die verwendet werden könnte, um eine Speicheranforderung zu erfüllen.
Linux-Befehle
Dateien Teer · pv · Katze · tac · chmod · Griff · unterschied · sed · Mit · Mann · geschoben · popd · fsck · Testdisk · seq · fd · pandoc · CD · $PFAD · awk · beitreten · jq · falten · einzigartig · Journalctl · Schwanz · Zustand · ls · fstab · rauswerfen · weniger · chgrp · chown · rev · suchen · Saiten · Typ · umbenennen · Postleitzahl · entpacken · montieren · ummount · Installieren · fdisk · mkfs · rm · rmdir · rsync · df · gpg · wir · Nano · mkdir · von · ln · Patch · Konvertieren · rclon · Fetzen · SRM
Prozesse alias · Bildschirm · oben · nett · renice · Fortschritt · strace · System · tmux · chsh · Geschichte · beim · Charge · kostenlos · die · dmesg · Benutzermod · ps · chroot · xargs · tty · kleiner Finger · lsof · vmstat · Auszeit · Mauer · ja · töten · Schlaf · sudo · seine · Zeit · groupadd · Benutzermod · Gruppen · lshw · stilllegen · neu starten · halt · ausschalten · passwd · lscpu · crontab · Datum · bg · fg
Vernetzung netstat · Klingeln · Traceroute · ip · ss · Wer ist · fail2ban · bmon · Sie · Finger · nmap · ftp · Locken · wget · Wer · Wer bin ich · In · iptables · ssh-keygen · ufw

VERBUNDEN: Beste Linux-Laptops für Entwickler und Enthusiasten

WEITER LESEN