Was bei der Überprüfung des Speicherverbrauchs unter Linux zu beachten ist

Nur wenn Sie die Unterschiede zwischen Swap, inaktivem und aktivem Arbeitsspeicher unter Linux kennen, können für mehr Server-Performance optimieren.

Linux-Server stellen für Prozesse echten und virtuellen Arbeitsspeicher zur Verfügung. Darüber hinaus wird Arbeitsspeicher...

mithilfe von Auslagerung (Swap) verwaltet. Das Verständnis für die Speichertypen unter Linux und wie Prozesse den Arbeitsspeicher teilen, hilft Ihnen bei der Optimierung der Speichernutzung und der Geschwindigkeit.

Beim Start von Programm-Prozessen weist der Linux-Kernel diesen Arbeitsspeicher zu. Das summiert sich zu virtuellem Arbeitsspeicher auf. Virtueller Arbeitsspeicher ist bei Linux nicht limitiert. Prozesse sind beim Start immer in der Lage, Speicher zu reservieren. Der Linux-Kernel bildet zugewiesenen virtuellen Arbeitsspeicher auf echten Arbeitsspeicher mithilfe von Swap ab.

Swap

Unter Windows kann Arbeitsspeicher-Austausch (Swap) Programme verlangsamen. Unter Linux ist das anders und Swap verhält sich nutznießerisch. Das liegt daran, wie der Linux-Kernel den von den Prozessen belegten Speicher analysiert. Der Linux-Kernel verwendet einen Algorithmus, der sich Least Recently Used nennt. Damit wird festgestellt, welche Arbeitsspeicher-Pages im RAM sein müssen und welche nicht. Unter bestimmten Umständen kann es flinker sein, wenn Sie den Linux-Kernel schneller swappen lassen.

Programm-Prozesse ersuchen in der Regel nach mehr Arbeitsspeicher, als diese in Wirklichkeit benötigen. Mithilfe der Linux-Software top sehen Sie den angeforderten virtuellen und den permanenten Arbeitsspeicher in den Spalten VIRT (virtuell) und RES (resident). Sobald ein Prozess mit Aktivitäten beginnt, wandern die Pages ins RAM und erscheinen als RES. Das Monitoring des Arbeitsspeicherverbrauchs im Linux-Kernel erlaubt es Administratoren, nur die häufig verwendeten Speicher-Pages zu behalten. Weniger häufig verwendete Pages werden vom Kernel entweder verworfen oder ausgelagert.

Prozesse auf dem Linux-Server verwenden abhängig vom Code anonymen oder Daten-abhängigen Dateispeicher. Anonymer Arbeitsspeicher muss zu jeder Zeit direkt verfügbar sein. Wenn die Speicher-Ressourcen knapp werden, sollten als anonym markierte Seiten ausgelagert (swap) werden.

Datenspeicher

Datenspeicher ist eine andere Geschichte. Liest ein Prozess Daten von einer Festplatte, bleiben diese im Cache. Somit kann der Prozess die Daten schnell ausliefern, wenn sie angefordert werden. Sollte hier eine Speicher-Knappheit auftreten, kann der Kernel den Datenspeicher einfach verwerfen. Es gibt keinen Geschwindigkeitsvorteil, unbenutzten Datenspeicher nach Swap zu transportieren. Somit ist das Verwerfen die bessere Option.

Aktiver und inaktiver Speicher

Der Linux-Kernel unterscheidet zwischen aktivem und inaktivem Speicher. Das ist das ausschlagende Kriterium, ob Arbeitsspeicher verworfen oder ausgelagert wird. Sollte inaktiver Speicher kürzlich nicht in Benutzung gewesen sein, schadet es nichts, diesen entweder zu verwerfen oder nach Swap zu verschieben. Die Datei /proc/meminfo zeigt den Unterschied zwischen aktivem und inaktivem Arbeitsspeicher für anonymen und Datei-Speicher (siehe Beispiel).

Beispiel: Der Unterschied zwischen aktivem und inaktivem Arbeitsspeicher aus dem Linux-Kernel.

[root@IAD ~]# less /proc/meminfo

MemTotal: 7971636 kB

MemFree: 2653648 kB

Buffers: 250868 kB

Cached: 2974052 kB

SwapCached: 0 kB

Active: 2530380 kB

Inactive: 2323604 kB

Active(anon): 1633532 kB

Inactive(anon): 125712 kB

Active(file): 896848 kB

Inactive(file): 2197892 kB

Unevictable: 0 kB

Mlocked: 0 kB

SwapTotal: 10059772 kB

SwapFree: 10059772 kB

Dirty: 132 kB

Writeback: 0 kB

AnonPages: 1629052 kB

Mapped: 162396 kB

Shmem: 130192 kB

Slab: 296332 kB

SReclaimable: 233344 kB

SUnreclaim: 62988 kB

In diesem Beispiel sehen Sie viel aktiven anonymen aber nur wenig inaktiven anonymen Arbeitsspeicher. Sollten die Speicher-Ressourcen zuneige gehen, kann der Kernel die 125 MByte inaktiven anonymen Arbeitsspeicher nach Swap auslagern. Allerdings sollte er nichts von den 1,6 GByte als aktiv markierten Arbeitsspeicher ins Swap verschieben. Das würde sich negativ auf die Geschwindigkeit auswirken. Speicher-Pages müssten in diesem Fall andauernd zwischen RAM und Festplatte hin- und hergeschoben werden. Ist die Swap-Menge größer als die Menge des inaktiven (anonymen) Arbeitsspeichers, sollten Sie dem System mehr Arbeitsspeicher spendieren. Damit optimieren Sie die Speichernutzung unter Linux.

Im Idealfall übersteigt die Menge des genutzten Swap die Menge des aktiv (anonymen) genutzten Arbeitsspeichers nicht. Die Menge des aktiven (Datei-) Speichers ist die Menge des vom Kernel benötigten Pufferspeichers (Cache). Alles darüber hinaus hat keine positiven oder negativen Auswirkungen auf die Performance des Servers.

Inaktiver Dateispeicher ist als wegwerfbar markiert, sollte der Kernel mehr Speicher benötigen. Solange der Linux-Kernel nichts Besseres damit anfangen kann, wird inaktiver Dateispeicher im Cache gehalten. Sollten diese Informationen gelöscht werden, hat das keine Auswirkungen.

Artikel wurde zuletzt im September 2013 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Server-Hardware und -Virtualisierung

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

Close