SSD-Performance optimieren

© © Tetastock, Fotolia

Schnelligkeit ist keine Hexerei

Nachdem ein Artikel im letzten ADMIN-Magazin erläutert hat, wie SSDs funktionieren und wann sich deren Einsatz lohnt, geht es diesmal um die Optimierung der SSD-Performance.
Beinahe enzyklopädisch behandelt unser Schwerpunkt-Artikel über IPSEC verschlüsselte Verbindungen zwischen Linux, Windows, BSD, Solaris, Cisco- sowie ... (mehr)

SSDs werden so wie viele Festplatten per SATA-Schnittstelle mit dem Rechner verbunden. Sofern der Rechner halbwegs aktuell ist, erkennt er die SSD beim Hochfahren und kann sie sofort verwenden. Wer die optimale Performance erreichen will, für den lohnt es sich allerdings, vor dem Einsatz ein paar Einstellungen zu überprüfen.

AHCI aktivieren

Der erste Schritt auf dem Weg zu einer optimalen I/O-Performance der SSD besteht darin, den Advanced Host Controller Interface-Modus (AHCI) im BIOS zu aktivieren. Er ermöglicht im Gegensatz zum IDE-Modus Native Command Queuing (NCQ). Damit bekommt die SSD immer gleich mehrere I/O-Anfragen parallel vom Betriebssystem und muss nicht nach jeder einzelnen Abfrage auf die nächste warten. Die Pipeline der SSD bleibt damit voll, der SSD-Controller kann durchgängig I/O-Anfragen abarbeiten, die Performance steigt.

Neben NCQ bietet der AHCI-Modus darüber hinaus auch noch das Device Initiated Power Management (DIPM) der SATA-Schnittstelle, das den Stromverbrauch von SSDs im Idle-Betrieb deutlich minimiert. Das erhöht zwar nicht die Performance, steigert aber etwa die Akkulaufzeit bei einem Laptop. Sowohl der Microsoft MSAHCI-Treiber als auch Linux ab Kernel 2.6.24 unterstützen DIPM. Der MSAHCI-Treiber nutzt DIPM standardmäßig nur im Power Saver Modus. Mit dem Windows Tool »powercfg« lässt sich die Nutzung von DIPM auch in anderen Modi aktivieren. Unter Linux kann DIPM über das Sysfs aktiviert werden ( Listing 1 ). Als dritten Vorteil ermöglicht AHCI, Laufwerke im Betrieb per Hot-Plug zu tauschen.

Listing 1

DIPM-Konfiguration unter Linux

 

Spare Area vergrößern

Wie bereits im ersten Artikel dieser Serie erwähnt, kann ein SSD Controller die Daten von einer einmalig beschriebenen Page (die aus mehreren Speicherzellen besteht) nicht verändern. Vor einem erneuten Beschreiben dieser Page müsste der Controller den gesamten Block löschen, in dem sich die Page befindet. Um dies zu vermeiden, schreibt der Controller in einem solchen Fall die geänderten Daten einfach in eine andere, bisher unbenutzte Page und aktualisiert seine interne Zuordnungstabelle entsprechend ( Abbildung 1 ). #

Abbildung 1: Viele Pages (rot markiert) sind ungültig, weil deren Daten verändert und woanders abgespeichert wurden. Der SSD Controller aktualisiert seine interne Zuordnungstabelle entsprechend.

Sind auf der SSD zu Beginn nur wenige Daten gespeichert, gibt es noch ausreichend freie Pages. Darüber hinaus hat jede SSD eine Spare Area, deren Pages der SSD Controller ebenfalls für diese Zwecke nutzt. Bevor die freien Pages ganz zur Neige gehen, räumt der SSD Controller mit seinem Garbage Collector auf. Er kopiert dabei verstreute belegte Pages aus verschiedenen Blöcken in noch freie Pages. Die dadurch freigeschaufelten Blöcke kann er nun löschen. Damit stehen ihm in der Summe wieder mehr unbenutzte Pages zur Verfügung. Diese Garbage Collection kostet jedoch Zeit und damit Performance. Außerdem erhöht sie durch das interne Kopieren die Anzahl der Schreibvorgänge auf die einzelnen Speicherzellen (die Write Amplification steigt). Somit sinkt auch die Lebensdauer dieser Speicherzellen. Ein einfacher Trick verhindert häufige Aufrufe der Garbage Collection: Werden bei der erstmaligen Nutzung der SSD etwa nur 90 Prozent des verfügbaren Datenbereiches partitioniert (Over-Provisioning), erfolgen auf die restlichen zehn Prozent niemals Schreibzugriffe. Die entsprechenden Pages bleiben ungenutzt, der SSD Controller kann diese Pages somit wie Pages aus der Spare Area nutzen. Untersuchungen von Intel zeigen, dass bei einer solchen Einsparung von zehn Prozent der Datenmenge die Random-I/O-Performance auf das Zweieinhalbfache steigt und sich die Lebensdauer der SSD mehr als verdoppelt ( Abbildung 2 ).

Abbildung 2: Eine etwas vergrößerte Spare Area hat positive Auswirkungen. Nutzt man nur 144GB einer 160GB X25-M SSD, steigen I/O Performance und Lebensdauer. beachtlich [1].

Artikel als PDF herunterladen

SSD-Performance optimieren 3,11 MB
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023