Erinnerung

Befehle zum Verwalten des Linux-Speichers

Befehle zum Verwalten des Linux-Speichers
UNIX/Linux-Systeme enthalten ein Befehlszeilentool für fast alles. Dazu gehören auch Programme zum Umgang mit dem Speicher. In diesem Artikel zeigen wir Ihnen eine Auswahl an Befehlen, die für Sie als Linux-Benutzer sehr praktisch sind.

Erkennen Sie die Hardware mit dmidecode

Die automatische Hardwareerkennung war schon immer ein bisschen wie eine Lotterie, aber es wurde in den letzten Jahren besser, da viele Hersteller ihre Produkte detaillierter dokumentieren und spezifische Informationen auch online verfügbar haben. Um Informationen zu den Hardwareinformationen zum in Ihrem Computer installierten RAM zu erhalten, verwenden Sie die dmidecode Befehl (Paket für Debian GNU/Linux, Ubuntu und Linux Mint: dmidecode).

Dieses Tool meldet unter anderem detaillierte Daten zu den verbauten Systemkomponenten wie Prozessor, Baseboard und RAM. Die Informationen basieren auf dem Desktop Management Interface (DMI) [1], einem Framework, das die einzelnen Komponenten auf einem Desktop, Notebook oder Server klassifiziert, indem diese Komponenten von der sie verwaltenden Software abstrahiert werden [2]. Die Option --Typspeicher bezieht sich auf die Speichergeräte. Für andere DMI-Klassen schauen Sie auf die Handbuchseite von dmidecode.

# dmidecode --type memory
# dmidecode 2.12
SMBIOS 2.7 vorhanden.
Handle 0x0007, DMI-Typ 16, 23 Byte
Physisches Speicher-Array
Ort: Systemplatine oder Hauptplatine
Verwendung: Systemspeicher
Fehlerkorrekturtyp: Keine
Maximale Kapazität: 16 GB
Fehlerinformations-Handle: Nicht bereitgestellt
Anzahl der Geräte: 1
Handle 0x0008, DMI-Typ 17, 34 Byte
Speichergerät
Array-Handle: 0x0007
Fehlerinformations-Handle: Nicht bereitgestellt
Gesamtbreite: 64 Bit
Datenbreite: 64 Bit
Größe: 8192 MB
Formfaktor: SODIMM
Satz: Keine
Locator: ChannelA-DIMM0
Bankfinder: BANK 0
Typ: DDR3
Typdetail: Synchron
Geschwindigkeit: 1600 MHz
Hersteller: Samsung
Seriennummer: 25252105
Asset-Tag: Keine
Teilenummer: M471B1G73DB0-YK0
Rang: Unbekannt
Konfigurierte Taktfrequenz: 1600 MHz

Dieses Gerät ist derzeit mit 8G DDR3-RAM mit einer konfigurierten Taktfrequenz von 1600 MHz ausgestattet. Wie Sie sehen, beträgt die maximal verfügbare Kapazität des Onboard-RAMs 16 GB, was bedeutet, dass er um ein zweites 8-G-Modul erweitert werden kann.

Grafische Informationen zum Speicher

Falls Sie eine grafische Oberfläche bevorzugen, um diese Informationen abzurufen, könnten die Tools Hardinfo [3] und Hardware Lister (GTK+ Version) [4] für Sie interessant sein. Unter Debian GNU/Linux, Ubuntu und Linux Mint sind diese Programme über die Pakete hardinfo und lshw-gtk . verfügbar. Abbildung 2 zeigt die Benutzeroberfläche von Hardinfo, die die Speicherinformationen einer Xubuntu-Installation anzeigt.

Wie viel Speicher ist derzeit verfügbar

Manchmal ist weniger mehr. Auf der Kommandozeile sind die Informationen zum Speicher über das kostenlos Befehl. Unter Debian GNU/Linux, Ubuntu und Linux Mint ist dieses Programm Teil des procps-Pakets [5]. Abbildung 2 zeigt die Ausgabe in einem Terminalfenster.

Als Auswahl der weiteren Optionen, kostenlos akzeptiert verschiedene Parameter wie:

In Abbildung 3 wird die Ausgabe in Megabyte mit der Option -m . angezeigt. Das System verfügt über 4G RAM, während derzeit 725M im Einsatz sind.

Speicherinformationen aus Sicht des Linux-Kernels

Die oben genannten Tools basieren auf Rohinformationen, die im proc-Dateisystem des Linux-Kernels gespeichert sind. Um diese Details anzuzeigen, geben Sie den Inhalt der Datei aus /proc/meminfo Verwendung der Katze Dienstprogramm in einem Terminal:

$ cat /proc/meminfo
Speichergesamt: 7888704 kB
MemFree: 302852 kB
MemVerfügbar: 448824 kB
Puffer: 17828 kB
Zwischengespeichert: 326104 kB
SwapCached: 69592 kB
Aktiv: 2497184 kB
Inaktiv: 650912 kB
Aktiv(anon): 2338748 kB
Inaktiv(anon): 525316 kB
Aktiv(Datei): 158436 kB
Inaktiv(Datei): 125596 kB
Unevicable: 64 kB
Gelockt: 64 kB
SwapTotal: 16150524 kB
SwapFree: 15668480 kB
Schmutzig: 3008 kB
Rückschreiben: 0 kB
AnonPages: 2774656 kB
Zugeordnet: 4414752 kB
Schmem: 59900 kB
Platte: 130216 kB
SRückgewinnbar: 61748 kB
Sonnenrückgewinnung: 68468 kB
KernelStack: 7328 kB
Seitentabellen: 42844 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
RückschreibTmp: 0 kB
CommitLimit: 20094876 kB
Committed_AS: 10344988 kB
VmallocGesamt: 34359738367 kB
VmallocVerwendet: 367296 kB
VmallocChunk: 34359345768 kB
Hardwarebeschädigt: 0 kB
AnonHugePages: 0 kB
HugePages_Total:0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Riesige Seitengröße: 2048 kB
DirectMap4k: 78448 kB
DirectMap2M: 2756608 kB
DirectMap1G: 5242880 kB
$

Weitere statistische Informationen zu CPU-Auslastung, Speicher und Prozessen finden Sie in den Tools vmstat, und iostat (Debian-Pakete procps und sysstat).

Mit Prozessen arbeiten - ps, htop und pstree

Um die aktiven Prozesse Ihres Linux-Systems anzuzeigen, verwenden Sie das ps Befehl. Normalerweise ist die Ausgabe alphabetisch sortiert. Aber die ps Kommando kann noch viel mehr. Verwenden der Optionen aux --sortieren -rss die Ausgabe der Prozessliste wird nach ihrem Speicherverbrauch in einer Top-Down-Reihenfolge sortiert. Abbildung 4 zeigt die Prozesse mit dem höchsten Speicherbedarf. Die Ausgabe wird nach der 6. Spalte mit dem Titel RSS sortiert, die als Resident Set Size abgekürzt wird. Der Wert wird in Kilobyte angegeben.

Die Befehle ps, pstree und htop sind in Bezug auf die Informationen, die diese Tools anzeigen, eng verwandt. Beide pstree und htop ein Diagramm anzeigen, um die Prozessabhängigkeiten zu visualisieren. htop fungiert als interaktive Version, mit der Sie die Prozessliste nach oben und unten scrollen können. Abbildung 5 zeigt htop auf einem Desktop-System mit einer Auswahl von Prozessen, sortiert nach ihrem spezifischen Speicherverbrauch (5. Spalte).

Prozesse finden, die Swap-Speicher verwenden

Je mehr Prozesse gestartet werden, desto mehr Speicher wird gleichzeitig verwendet. Sobald Ihrem Linux-System die ungenutzten Speicherseiten ausgehen, beschließt der Linux-Kernel, Speicherseiten mit der Methode der zuletzt verwendeten (LRU) auf die Festplatte auszulagern. Um die Frage zu beantworten, welche Prozesse Swap-Speicher verwenden und wie viel insbesondere verwendet wird, können Sie sich die Ausgabe des Top-Programms ansehen. Im Jahr 2016 veröffentlichte Erik Ljungstrom eine kurze Beschreibung, wie man diese Informationen abrufen und diese Spalte auf die Ausgabe von top erweitern kann [6]. Abbildung 6 zeigt diese Ausgabe auf einem System, das noch viele Speicherseiten im RAM hat und derzeit kein Swap verwendet.

Darüber hinaus hat er bereits 2011 ein Bash-Skript veröffentlicht, das die Informationen aus dem proc-Dateisystem auswertet, um die Nutzung von Swap Prozess für Prozess anzuzeigen [7]. Auch 7 Jahre später und bereits als veraltet bezeichnet, ist das Skript immer noch hervorragend und zeigt, wie man Aufgaben auf einem Linux-System automatisieren kann. Deshalb sind wir uns sicher, dass es hilfreich ist, es hier noch einmal zu zeigen.

Die Ausgabe des Skripts ist wie folgt (ausführen als Wurzel Benutzer die vollständigen Daten abrufen):

# ./Tauschen.Sch
PID=1 - Verwendeter Swap: 0 - (systemd )
PID=2 - Verwendeter Swap: 0 - (kthreadd )
PID=3 - Verwendeter Swap: 0 - (ksoftirqd/0 )
PID=5 - Verwendeter Swap: 0 - (kworker/0:0H )
PID=6 - Verwendeter Swap: 0 - (kworker/u16:0 )
PID=7 - Verwendeter Swap: 0 - (rcu_sched )
PID=8 - Verwendeter Swap: 0 - (rcu_bh )
PID=9 - Verwendeter Swap: 0 - (Migration/0 )
PID=10 - Verwendeter Swap: 0 - (Watchdog/0 )
PID=11 - Verwendeter Swap: 0 - (Watchdog/1 )
PID=12 - Verwendeter Swap: 0 - (Migration/1 )
PID=13 - Verwendeter Swap: 0 - (ksoftirqd/1 )
PID=15 - Verwendeter Swap: 0 - (kworker/1:0H )
PID=16 - Verwendeter Swap: 0 - (Watchdog/2 )
PID=17 - Verwendeter Swap: 0 - (Migration/2 )
PID=18 - Verwendeter Swap: 0 - (ksoftirqd/2 )
PID=20 - Verwendeter Swap: 0 - (kworker/2:0H )

#

Fazit

Die Linux-Toolbox enthält eine endlose Liste von verfügbaren Programmen, die Ihnen helfen, den Speicherverbrauch Ihres Linux-Systems zu analysieren. Wir haben nur einen kurzen Blick darauf geworfen - von Rohdaten bis zu vorverarbeiteten Informationen - alles ist da. Kenne nur deine Werkzeuge. Um sich mit ihnen vertraut zu machen, nimm dir ein bisschen Zeit und spiele mit ihnen.

Dies ist Teil 2 der Serie über Linux Kernel Memory Management.  Teil 1 befasst sich mit Swap Memory, in Teil 3 dieser Serie werden wir diskutieren, wie die Speichernutzung optimiert werden kann. Dies beinhaltet die Verwaltung von Ramdisks sowie komprimierten Auslagerungsdateien.

Links und Referenzen

Linux-Speicherverwaltungsserie

Danksagung

Der Autor bedankt sich bei Mandy Neumeyer und Gerold Rupprecht für die Unterstützung bei der Erstellung dieses Artikels.

So installieren Sie League of Legends auf Ubuntu 14.04
Wenn Sie ein Fan von League of Legends sind, dann ist dies eine Gelegenheit für Sie, League of Legends zu testen. Beachten Sie, dass LOL von PlayOnLin...
Installieren Sie das neueste OpenRA-Strategiespiel auf Ubuntu Linux
OpenRA ist eine Libre/Free Real Time Strategy Game Engine, die die frühen Westwood-Spiele wie den Klassiker Command & Conquer: Red Alert Red nachbilde...
Installieren Sie den neuesten Dolphin Emulator für Gamecube & Wii unter Linux
Mit dem Dolphin Emulator können Sie Ihre ausgewählten Gamecube- und Wii-Spiele auf Linux-Personalcomputern (PC) spielen. Als frei verfügbarer Open-So...