JumalaSika ltd - Fotolia
So schützen Sie beim Swap-Einsatz die NVMe-Geräte
Die Technologie von SSDs und NVMe hat weitgehend klassische Festplatten abgelöst. Eine Konsequenz ist, dass Swapping nicht mehr so einfach wie früher ist.
NVMe ist die nächste Generation von Solid-State Storage, womit die Performance von SSDs und anderen Speichergeräten im Netzwerk verbessert wird. Indem mehr Server mit NVMe ausgerüstet werden, wird es Zeit, Swap zu nutzen, um das Meiste aus diesen Systemen herauszuholen.
Bevor wir den Swap-Einsatz (Swap Usage) auf NVMe-Platten näher betrachten, müssen wir verstehen, was Swap eigentlich ist und warum sein Einsatz ursprünglich bei SSDs vermieden wurde. Danach werden wir untersuchen, was es heißt, Swap zusätzlich zu NVMe-technologien einzusetzen.
Warum Swap Usage benötigt wird
Swap erfüllt die gleiche Funktion wie eine Feuerversicherung. Es ist etwas, was man niemals zu gebrauchen beabsichtigt, aber was immer vorhanden sein muss. Bei IT-Systemen, die sich so verhalten, wie man es von ihnen erwartet, sollte immer genug Memory verfügbare sein, um Programme zu laden und Daten zwischenzuspeichern. Wenn die Systeme über genug RAM verfügen, sollte man keine Probleme mit Swap haben.
Swap kommt ins Spiel, wenn ein System nicht über genug RAM verfügt. Ein dedizierter, spezifischer Platz auf der Festplatte agiert dann als zusätzlicher RAM, indem er als „Swap Space“ (Tauschplatz) dient.
Es gibt verschiedene Grūnde, warum ein Linux-System auf Swap Space angewiesen sein könnte. Vielleicht ist der RAM-Bereich zu klein. Oder es liegt daran, dass einige Anwendungen der Serverklasse wie Oracle Database oder SAP eine bestimmte Größe des Swap Space für sich beanspruchen. Abgesehen davon gibt es einige außergewöhnliche Fälle, in denen zum Beispiel der Anwendungsserver ein Memory-Leck aufweist. In solch einem Fall riskiert man, nicht genügend RAM zur Verfügung zu haben, was dann dazu führen kann, dass Anwendungen zum Leidwesen der Anwender nicht mehr funktionieren.
Swap und SSD
Der Einsatz von Swap auf traditionellen Festplatten-Systemen mit sich drehenden Teilen ist nie ein Problem gewesen. Die Situation ist jedoch unterschiedlich, wenn man SSDs mit Flash RAM Cells einsetzt, die eine begrenzte Lebenszeit haben. Jeder Schreibvorgang auf einer Flash-Zelle nutzt die Memory-Zelle ab, und ab einem bestimmten Punkt funktioniert sie nicht mehr.
Die erwartete Lebenszeit eines SSD-Geräts wird in dem Wert „Terabytes Written“ (TBW) ausgedrückt. Dieser Wert hält fest, wie viele Bytes wahrscheinlich geschrieben werden, bis eine SSD ausfällt. Der TBW-Wert eines SSD-Geräts ist in der Regel in den Produkteigenschaften als Endurance-Parameter angegeben. Der TBW-Wert für eine Platte hängt von ihrer Qualität ab. Low-End-Consumer-Platten können bereits bei einem niedrigen Wert wie 20 TBW ausfallen, während Enterprise-SSDs auf Server-Niveau in der Regel mehr als 1.000 TBW erreichen können. Wird der Swap-Einsatz begrenzt, hält das zugleich die Anzahl von Schreibprozessen auf einer SSD niedrig.
Swap-Einsatz auf NVMe
Der hauptsächliche Unterschied zwischen SSD- und NVMe-Geräten besteht in der Art und Weise, wie sie sich mit dem System-Bus verbinden. Auf einem physischen Niveau benutzen beide Gerätetypen Flash-Zellen zum Schreiben der Daten, weshalb es bei TBW keinen grundsätzlichen Unterschied zwischen SSD und NVMe gibt. Aber was bedeutet das für den Swap-Einsatz auf NVMe-Geräten? Es bedeutet, dass die Regeln für non-NVMe SSDs auch für NVMe SSDs gelten.
Um Missverständnisse auszuschließen: Wenn man wenig Memory zur Verfūgung hat und Swap ständig nutzt, wäre man besser mit klassischen Festplatten dran. Das gilt aber nicht für ein typisches Linux-System. Die meisten Server und Workstations auf Linux-Basis fahren gut mit dem bereits installierten physischen RAM.
Wenn jedoch der Linux-Kernel auf solchen Systemen damit anfängt, Memory-Seiten auf die Festplatte zu verlagern, muss man sich vergewissern, ob aktive oder nicht-aktive Memory-Seiten verlagert werden. Eine nicht-aktive Memory-Seite ist in der Vergangenheit einmal dazu bestimmt, aber seitdem nie benutzt worden. Wenn das System nur nicht-aktive Memory-Seiten (Pages) verlagert, gibt es keinen Grund, besorgt zu sein und den Swap-Einsatz auf SSD- oder NVMe-Drives zu vermeiden. Dies liegt daran, dass nicht-aktive Memory-Seiten in der Regel dort bleiben, wo sie sich nach dem Swap-Prozess befinden. Dies bedeutet, dass die Datenmenge, die auf die Swap-Lokation geschrieben wird, viel kleiner ist, wenn nur nicht-aktive Seiten dafür genutzt werden.
Die beste Methode herauszufinden, ob ein System Swap aktiv oder nicht einsetzt, besteht darin, das vmstat-Kommando zu nutzen. Dieser Befehl liefert eine systemweite Übersicht über Performance, einschließlich aller Prozesse, Swap-Einsatz, Memory, Paging und CPU-Aktivität.
Wenn man zum Beispiel den Befehl „vmstat 2 100“ benutzt, wird er 100 Mal in einem Abstand von 2 Sekunden anzeigen, wie aktiv Swap im System eingesetzt wird. In den Spalten SI und SO sieht man die Ergebnisse für Swap In und Swap Out. Die erste Zeile von vmstat Output ist das langfristige Ergebnis und kann ignoriert werden. In den übrigen Spalten kann man beobachten, was passiert, wenn der Befehl eine Ausgabe produziert. Wenn man keine besonderen Aktivitäten sieht, besteht kein Grund zur Besorgnis. Wenn man dagegen eine signifikante Aktivität feststellt, wird ein langsamer Verschleiß des SSD-Geräts angezeigt, und es wäre an der Zeit, mehr RAM zu dem System hinzuzufügen.