Der RAM, für Random Access Memory, ist eine kritische Komponente eines Linux-Systems, die genau überwacht werden muss.
In manchen Fällen kann es passieren, dass Ihnen der Arbeitsspeicher ausgeht und Ihr Server sehr langsame Antwortzeiten hat oder gar nicht mehr reagiert.
Daher ist es wichtig zu wissen, wie man den RAM unter Linux überprüft, da Sie in der Lage sein können, vorbeugende Maßnahmen zu ergreifen, anstatt korrigierende.
Es kann auch sinnvoll sein, den Swap-Speicher, auch bekannt als virtueller Speicher, zu vergrößern, um die Leistung Ihres Servers zu verbessern.
In diesem Tutorial werden wir alle Möglichkeiten auflisten, wie Sie Ihren RAM unter Linux überprüfen können.
Inhaltsverzeichnis
RAM unter Linux mit free prüfen
Der beliebteste Befehl, um Ihren RAM unter Linux zu prüfen, ist der Befehl „free“.
$ free total used free shared buff/cache availableMem: 4039588 3475216 137584 39596 426788 287580Swap: 0 0 0
Wie Sie sehen können, ist die Ausgabe in zwei Kategorien unterteilt: den Arbeitsspeicher (den eigentlichen RAM) und den Swap (auch virtueller Speicher genannt).
Durch die Verwendung von free erhalten Sie die folgenden Informationen:
- total : die Gesamtmenge an Speicher, die derzeit auf Ihrem System installiert ist, in Kilobyte;
- used : die Menge an RAM, die derzeit auf Ihrem System verwendet wird, in Kilobyte;
- free : die Menge an freiem Speicher, die auf Ihrem System verfügbar ist, in Kilobyte;
- shared : stellt den Speicher dar, der von tmpfs verwendet wird, das ein virtuelles Dateisystem ist, das scheinbar eingehängt ist, aber zum flüchtigen Speicher gehört;
- buffers : Speicher, der von den Kernel-Puffern verwendet wird;
- cache : die Anzahl des Speichers, der vom Seiten-Cache verwendet wird, in dem Daten möglicherweise zuerst gespeichert werden, bevor sie auf die Festplatte geschrieben werden;
- available : der auf dem System verfügbare Speicher in Kilobyte
Beachten Sie, dass, auch wenn viel Speicher vom Cache oder von den Puffern verwendet wird, der Kernel diesen Platz freigeben kann, wenn Ihr System mehr Speicher für Prozesse benötigt.
Wie der lsblk-Befehl, den wir in unseren Festplatten-Tutorials kennengelernt haben, kann auch der „free“-Befehl in einem menschenfreundlichen Format angezeigt werden.
Um den aktuell verfügbaren Arbeitsspeicher in einem menschenfreundlichen Format zu überprüfen, verwenden Sie „free“ mit der Option „-h“.
total used free shared buff/cache availableMem: 3.9G 3.3G 127M 38M 400M 256MSwap: 0B 0B 0B
Wie Sie sehen, ist die Ausgabe einfacher zu lesen, aber sie ist gerundet.
In ähnlicher Weise können Sie sich mit dem free-Befehl Gesamtspalten anzeigen lassen, um die Gesamtmenge an RAM und Swap zu überprüfen, die auf Ihrem System verfügbar ist.
Um Gesamtspalten anzuzeigen, verwenden Sie „free“ mit der Option „-t“.
$ free -t total used free shared buff/cache availableMem: 4039588 3499392 128828 39596 411368 263292Swap: 0 0 0Total: 4039588 3499392 128828
Beachten Sie, dass die Befehle kombiniert werden können, um eine menschenfreundliche Ausgabe zu erhalten und die Gesamtspalten anzuzeigen.
$ free -th total used free shared buff/cache availableMem: 3.9G 3.3G 125M 38M 402M 257MSwap: 0B 0B 0BTotal: 3.9G 3.3G 125M
RAM mit vmstat prüfen
Eine weitere gute Möglichkeit, Ihre aktuelle virtuelle Speichernutzung zu prüfen, ist der Befehl „vmstat“.
Die Ausgabe ist vielleicht etwas schwer zu lesen, aber hier sind die Details der angezeigten Spalten:
- r : Anzahl der lauffähigen Prozesse auf Ihrem System;
- b : Anzahl der Prozesse im ununterbrochenen Ruhezustand;
- swpd : die Menge an RAM, die derzeit von Ihrem System verwendet wird;
- free : der verfügbare Speicher
- buff, cache : der von den Kernel-Puffern und den Seiten-Caches verwendete RAM;
- inactive, active : die Menge des inaktiven und aktiven Speichers
- si : der von der Festplatte verwendete Swap-Speicher
- so : der auf die Festplatte ausgelagerte Swap-Speicher
Die anderen Spalten beziehen sich auf die Festplatten-E/A und auf die CPU-Auslastung, die in unserem Fall nicht relevant sein dürften.
$ vmstat -s 4039588 K total memory 3460532 K used memory 3398428 K active memory 198356 K inactive memory 162648 K free memory 48904 K buffer memory 367504 K swap cache 0 K total swap 0 K used swap 0 K free swap
Wie Sie sehen, werden Sie mit einer großen Anzahl von Zeilenausgaben versorgt, aber nur wenige sind relevant für das, was wir zu erreichen versuchen.
Oben in der vmstat-Ausgabe sehen Sie den Gesamtspeicher, den verwendeten Speicher, den aktiven Speicher (der dem verwendeten Speicher entspricht), den inaktiven und den freien Speicher.
Diese Spalten sind den Spalten, die mit dem free-Befehl angezeigt werden, sehr ähnlich.
Sie erhalten auch den Pufferspeicher, den Swap-Cache (der dem Page-Cache entspricht) sowie den gesamten Swap, falls vorhanden.
Inspecting /proc/meminfo to check RAM
Wie Sie bereits wissen, ist der Kernel derjenige, der das Dateisystem virtualisiert und Einstiegspunkte zu einigen Geräten auf Ihrem System bereitstellt.
Zum Beispiel kann das Verzeichnis /proc Verweise auf Prozesse auf Ihrem System (d.h. Dateideskriptoren) speichern; ähnlich speichert das Verzeichnis /dev Verweise auf virtuelle Geräte, die letztendlich auf reale Festplatten zeigen.
Eine Datei des /proc-Verzeichnisses könnte jedoch wichtiger sein als andere, wenn es um die Überprüfung Ihres Arbeitsspeichers geht: meminfo.
Wie Sie sehen, liefert Ihnen der Kernel Statistiken, die denen des „free“- oder „vmstat“-Befehls sehr ähnlich sind.
Das ist eigentlich keine große Überraschung, denn diese Befehle beziehen ihre Informationen aus der meminfo-Datei selbst.
Mit Hilfe der Datei /proc/meminfo haben Sie Zugriff auf den Gesamtspeicher Ihres Systems, den verfügbaren freien Speicher, den verfügbaren Speicher sowie eventuell verwendete Puffer und Seiten-Caches.
Schließlich haben Sie Zugriff auf den Swap-Cache sowie den verwendeten aktiven und inaktiven Swap.
Auflistung der RAM-Hardware mit dmidecode
Alle bisher verwendeten Befehle sind sehr hilfreich, können aber nur dazu verwendet werden, um den verwendeten RAM zu einem bestimmten Zeitpunkt zu überprüfen.
In manchen Fällen sind Sie vielleicht daran interessiert, mehr über Ihre RAM-Hardware zu erfahren.
Um das zu tun, müssen Sie den Befehl dmidecode verwenden.
Warnung: Sie müssen möglicherweise sudo sein, um dmidecode auf Ihrem System ausführen zu können.
$ sudo dmidecode# dmidecode 3.1Getting SMBIOS data from sysfs.SMBIOS 2.4 present.13 structures occupying 405 bytes.Table at 0x000F10D0.Handle 0x0000, DMI type 0, 24 bytesBIOS Information Vendor: Private Version: 20171212 Release Date: 12/12/2017 Address: 0xE8000 Runtime Size: 96 kB ROM Size: 64 kB Characteristics: BIOS characteristics not supported Targeted content distribution is supported BIOS Revision: 1.0
Standardmäßig wird dmidecode verwendet, um einen Dump der gesamten auf Ihrem System verwendeten Hardware durchzuführen.
Um die für Ihren Speicher bestimmte Hardware zu erhalten, müssen Sie den Typ der verwendeten Hardware angeben.
$ sudo dmidecode --type memory# dmidecode 3.1 Getting SMBIOS data from sysfs. SMBIOS 2.4 present. Handle 0x1000, DMI type 16, 15 bytes Physical Memory Array Location: Other Use: System Memory Error Correction Type: Multi-bit ECC Maximum Capacity: 4 GB Error Information Handle: Not Provided Number Of Devices: 1 Handle 0x1100, DMI type 17, 21 bytes Memory Device Array Handle: 0x1000 Error Information Handle: 0x0000 Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: DIMM 0 Bank Locator: Not Specified Type: RAM Type Detail: None
Wie Sie sehen können, ist die dmidecode-Ausgabe ziemlich nützlich: Mit ihr können Sie mehr über die maximale Kapazität Ihres Systems und deren Verteilung erfahren.
In diesem Beispiel ist mein System mit 4 GB Gesamtspeicher ausgestattet, der von einem einzigen RAM bereitgestellt wird, der sich im Speicherbereich DIMM 0 befindet.
Bei der hier gezeigten Abbildung, wäre der RAM-Speicher im ersten verfügbaren Steckplatz (DIMM 0)
RAM-Auslastung mit Prometheus überprüfen
Die oben beschriebenen Methoden funktionieren sehr gut, sind aber im Vergleich zu modernen Überwachungslösungen etwas altmodisch.
Eine gute Möglichkeit, die RAM-Auslastung zu überprüfen, ist die Verwendung eines modernen Monitoring-Stacks wie Prometheus & Grafana.
Prometheus stellt einen Node Exporter zur Verfügung, der verwendet werden kann, um Host-Metriken, insbesondere Speichermetriken, zu sammeln.
Auf der Github-Seite des Node Exporters müssen Sie den „meminfo“-Kollektor aktivieren, der auf das Sammeln von Speichermetriken aus der Datei /proc/meminfo spezialisiert ist.
Von dort aus können Sie einfach ein bestehendes Dashboard in Grafana importieren, um Echtzeit-Speicherstatistiken über Ihr System zu erhalten.
Das zuvor verlinkte Node-Exporter-Tutorial sollte Sie zum gleichen Ergebnis führen, hier können Sie das Grafana-Dashboard Ihrer Wahl auswählen.
Nutzung des Arbeitsspeichers mit top/htop-Befehlen verfolgen
Schließlich kann es nützlich sein, die interaktiven Befehle top und htop zu verwenden, um Ihre Speichernutzung zu verfolgen.
Top ist nativ auf Ihrem System installiert, führen Sie einfach „top“ aus, um die Statistiken über Ihr System zu erhalten.
Wie Sie hier sehen können, werden Sie mit CPU-Statistiken versorgt, aber auch mit der Gesamtmenge an RAM und Swap, die von Ihrem System verwendet wird.
Sie erhalten auch die verfügbaren Mengen sowie die verwendeten Puffer- und Seiten-Caches.
Die Statistiken werden für Ihr komplettes System, aber auch für jeden einzelnen Prozess auf Ihrer Instanz von oben nach unten sortiert ausgegeben.
Der htop-Befehl kann auch effektiv eingesetzt werden, um eine menschenfreundliche Speicherverfolgung auf Ihrem Server zu ermöglichen.
Es kann sein, dass htop nicht nativ auf Ihrem System installiert ist, so dass Sie es installieren müssen.
$ sudo apt-get install htop$ sudo yum install htop
Wenn htop installiert ist, können Sie es mit dem Befehl „htop“
Wie Sie sehen können, sind die Ausgaben ziemlich ähnlich: sie sind nur einfacher zu lesen.
Fazit
In diesem Tutorial haben Sie die vielen verschiedenen Möglichkeiten kennengelernt, wie Sie Ihren Arbeitsspeicher unter Linux überprüfen können, entweder über die Kommandozeile oder mit modernen Monitoring-Lösungen wie Prometheus und Grafana.
Wenn Sie die Speicherverwaltung auf Ihrem System verbessern wollen, sollten Sie sich unbedingt die Tutorials zum Thema Swap ansehen, da dort mehr über die Bedeutung des virtuellen Speichers auf Ihrem System erklärt wird.
Wenn Sie sich für Linux-Systemadministration interessieren, sollten Sie unbedingt einen Blick auf andere Tutorials werfen, die wir zu diesem Thema haben.