GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Welches Linux-Dateisystem funktioniert am besten mit SSD?

Dateisystem EXT4 + TRIM:

  • EXT4 mit TRIM verbessert die Leistung, indem unnötige Schreibzyklen auf das SSD-Laufwerk reduziert werden, da sie die Schreib-Neuschreibzyklen begrenzen.
  • Ubuntu und einige andere Linux-Varianten unterstützen EXT 4 mit TRIM von Haus aus.

SWAP-Partition:

  • Stellen Sie sicher, dass Sie keinen SWAP-Speicherplatz auf der SSD haben, auch um die Schreibzyklen zu reduzieren.
  • Wenn Sie ein mechanisches Laufwerk haben, sollten Sie einen SWAP-Speicherplatz auf dem mechanischen Laufwerk erstellen und ihn nicht auf der SSD haben.

Partitionsausrichtung:

  • Die Partition sollte auf einer sauberen 1-MB-Grenze beginnen, damit die Blockgröße des Dateisystems mit der Blockgröße der SSD übereinstimmt.

Verwenden Sie also EXT4 + TRIM mit einem SWAP auf einer mechanischen Festplatte oder ohne SWAP auf einer SSD.

Das obige kann implementiert werden, indem auf die Quelle verwiesen wird:So maximieren Sie die SSD-Leistung.


Kurze Antwort

  • Wählen Sie ext4 , und mounten Sie es entweder mit discard Option für TRIM-Unterstützung oder verwenden Sie FITRIM (siehe unten). Verwenden Sie auch die noatime Option, wenn Sie "SSD-Verschleiß" befürchten.

  • Ändern Sie nicht Ihren standardmäßigen I/O-Scheduler (CFQ) auf Servern mit mehreren Anwendungen , da es Fairness zwischen Prozessen bietet und automatische SSD-Unterstützung bietet. Verwenden Sie jedoch Deadline auf Desktops um ein besseres Ansprechverhalten unter Last zu erreichen.

  • Um eine korrekte Datenausrichtung zu gewährleisten, muss der Startsektor jeder Partition ein Vielfaches von 2048 sein (=1 MiB). Sie können fdisk -cu /dev/sdX verwenden um sie zu erstellen. Bei neueren Distributionen wird dies automatisch für Sie erledigt.

  • Denken Sie zweimal nach, bevor Sie Swap auf SSD verwenden. Es wird wahrscheinlich viel schneller sein im Vergleich zum Swap auf HDD, aber es wird auch die Festplatte schneller verschleißen (was möglicherweise nicht relevant ist, siehe unten).

Lange Antwort

  • Dateisysteme:

Ext4 ist das gebräuchlichste Linux-Dateisystem (gut gepflegt). Es bietet eine gute Leistung mit SSD und unterstützt TRIM (und FITRIM)-Funktion, um eine gute SSD-Leistung im Laufe der Zeit aufrechtzuerhalten (dies löscht ungenutzte Speicherblöcke für einen schnellen späteren Schreibzugriff). NILFS wurde speziell für Flash-Speicherlaufwerke entwickelt, ist aber nicht wirklich leistungsfähiger als ext4 auf Benchmarks. Btrfs gilt immer noch als experimentell (und schneidet auch nicht wirklich besser ab).

  • SSD-Leistung &TRIM:

Der TRIM Funktion löscht SSD-Blöcke, die nicht mehr vom Dateisystem verwendet werden. Dies optimiert die langfristige Schreibleistung und wird aufgrund ihres Designs für SSDs empfohlen. Das bedeutet, dass das Dateisystem in der Lage sein muss, dem Laufwerk diese Blöcke mitzuteilen. Die discard Mount-Option von ext4 wird ein solches TRIM ausgeben Befehle, wenn Dateisystemblöcke freigegeben werden. Dies ist Online-Verwerfen .

Dieses Verhalten impliziert jedoch einen geringen Leistungsaufwand. Seit Linux 2.6.37 können Sie die Verwendung von discard vermeiden und entscheiden Sie sich für gelegentliches Batch-Verwerfen stattdessen mit FITRIM (z. B. aus der crontab). Die fstrim Dienstprogramm tut dies (online), ebenso wie -E discard Option von fsck.ext4 . Sie benötigen jedoch eine "aktuelle" Version dieser Tools.

  • SSD-Verschleiß:

Möglicherweise möchten Sie die Schreibvorgänge auf Ihrem Laufwerk einschränken, da SSDs in dieser Hinsicht eine begrenzte Lebensdauer haben. Machen Sie sich jedoch nicht zu viele Sorgen , die schlechteste 128-GB-SSD von heute kann mindestens unterstützen 20 GB geschriebene Daten pro Tag für mehr als 5 Jahre (1000 Schreibzyklen pro Zelle). Bessere (und auch größere) können viel länger halten:Sie werden es bis dahin sehr wahrscheinlich ersetzt haben.

Wenn Sie Swap verwenden möchten auf SSD wird der Kernel eine nicht rotierende Festplatte bemerken und die Swap-Nutzung randomisieren (Kernel Level Wear Levelling):Sie sehen dann eine SS (Solid State) in der Kernel-Nachricht, wenn Swap aktiviert ist:

Hinzufügen von 2097148k Swap auf /dev/sda1. Priorität:-1 Bereiche:1 über:2097148 000 SS

  • I/O-Scheduler:

Außerdem stimme ich den meisten von aliasgar zu 's Antwort (auch wenn das meiste davon -illegal?- von dieser Website kopiert wurde), aber ich muss dem Scheduler teilweise widersprechen Teil. Standardmäßig ist der Terminplaner optimiert für Rotationsscheiben, da es den Aufzugsalgorithmus implementiert. Lassen Sie uns diesen Teil also klären.

Lange Antwort zu Planern

Ab Kernel 2.6.29 werden SSD-Festplatten automatisch erkannt, und Sie können dies überprüfen mit:

cat /sys/block/sda/queue/rotational

Sie sollten 1 erhalten für Festplatten und 0 für eine SSD.

Nun kann der CFQ-Scheduler sein Verhalten basierend auf diesen Informationen anpassen. Seit Linux 3.1 ist die Kernel-Dokumentation cfq-iosched.txt Datei sagt:

CFQ hat einige Optimierungen für SSDs und wenn es ein nicht rotierendes Medium erkennt, das eine höhere Warteschlangentiefe unterstützen kann (mehrere Anfragen während des Flugs gleichzeitig), [...].

Außerdem versucht der Deadline-Scheduler, ungeordnete Kopfbewegungen auf Rotationsplatten basierend auf der Sektornummer zu begrenzen. Kernel-Dokument deadline-iosched.txt zitieren , fifo_batch Optionsbeschreibung:

Anfragen werden in "Batches" einer bestimmten Datenrichtung (Lesen oder Schreiben) gruppiert, die in aufsteigender Sektorenreihenfolge bedient werden.

Es kann jedoch interessant sein, diesen Parameter bei Verwendung einer SSD auf 1 einzustellen:

Dieser Parameter stimmt das Gleichgewicht zwischen Latenz pro Anforderung und aggregiertem Durchsatz ab. Wenn niedrige Latenz das Hauptanliegen ist, ist kleiner besser (wobei ein Wert von 1 ein „Wer zuerst kommt, mahlt zuerst“-Verhalten ergibt). Das Erhöhen von fifo_batch verbessert im Allgemeinen den Durchsatz auf Kosten von Latenzvariationen.

Einige Benchmarks deuten darauf hin, dass es zwischen den verschiedenen Schedulern nur geringe Leistungsunterschiede gibt. Dann empfehlen Sie Fairness ? wenn CFQ auf der Bank selten schlecht ist . Bei Desktop-Setups werden Sie jedoch normalerweise eine bessere Reaktionsfähigkeit mit Deadline feststellen unter Last, aufgrund seines Designs (wahrscheinlich bei niedrigeren Durchsatzkosten).

Ein besserer Benchmark würde jedoch versuchen, Deadline mit fifo_batch=1 zu verwenden .

Um Deadline standardmäßig auf SSDs zu verwenden, können Sie eine Datei erstellen, z. B. /etc/udev.d/99-ssd.rules wie folgt:

# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"

Der Archlinux-Artikel Solid State Drives sagt im Abschnitt Wahl des Dateisystems:

Es gibt viele Optionen für Dateisysteme, darunter Ext2/3/4, Btrfs usw.

Btrfs
Btrfs-Unterstützung wurde in die Mainline-Version 2.6.29 des Linux-Kernels aufgenommen. Manche meinen, es sei noch nicht ausgereift genug für den Einsatz in der Produktion, während es auch Early Adopters dieses potenziellen Nachfolgers von ext4 gibt. Benutzer werden ermutigt, den Btrfs-Artikel für weitere Informationen zu lesen.

Ext4
Ext4 ist ein weiteres Dateisystem, das SSD unterstützt. Es gilt seit 2.6.28 als stabil und ist ausgereift genug für den täglichen Gebrauch. Im Gegensatz zu Btrfs erkennt ext4 die Plattenbeschaffenheit nicht automatisch; Benutzer müssen die TRIM-Befehlsunterstützung explizit aktivieren, indem sie die Discard-Mount-Option in der fstab verwenden (oder mit tune2fs -o verwerfen /dev/sdaX).

Sowohl Btrfs als auch Ext4 erfüllen die beiden Hauptanforderungen für eine effiziente Nutzung der SSD :

  • Das Dateisystem muss in der Lage sein, ATA_TRIM-Befehle an die zugrundeliegende SSD auszugeben
  • Das Dateisystem darf keine unnötigen Schreibvorgänge auf die Festplatte ausführen

Für die Leistung gibt es zwei weitere Anforderungen:

  • Partitionen müssen an die Blockgröße der SSD angepasst werden
  • TRIM muss explizit für jede Ext4-formatierte Partition aktiviert werden

Die erste ist heutzutage bei den meisten Linux-Installern automatisch. fdisk erstellt auch Partitionen an der 1024-KB-Grenze, wenn es mit den "-cu"-Flags gestartet wird.

Die zweite erfolgt automatisch für Btrfs, aber für Ext4 erfolgt dies manuell durch Hinzufügen von „discard“ zur Liste der Mount-Optionen für jede Ext4-Partition in der Datei „/etc/fstab“. Weitere Einzelheiten finden Sie in dieser Anleitung.

Meiner Meinung nach erforderte dies ein wenig Fummelei mit fstab für Ext4, kein Grund, dieses ausgereifte und hervorragende Dateisystem nicht zu verwenden.


Linux
  1. 8 Best Practices mit sudo unter Linux – Do’s and Dont’s von sudo

  2. Linux – Wie wird ein Remote-Dateisystem mit Angabe einer Portnummer gemountet?

  3. Swap fehlgeschlagen:Ungültiges Argument auf einem Linux-System mit Btrfs-Dateisystem

  4. So klonen Sie eine SSD mit Linux Mint 18 auf eine größere SSD

  5. Wie erstelle ich eine Linux-Ramdisk mit fester Größe, die niemals auf die Festplatte wechselt?

Welcher Linux-Befehl

Welche Linux-Distribution ist die beste für den Datenschutz?

Ubuntu vs. Linux Mint:Was ist das Beste?

Cinnamon Vs GNOME:Welche Linux-Desktop-Umgebung ist die beste?

Top 10 der besten Ubuntu-Derivate:Welches ist Ihr Favorit?

Welches lokale Backup-Tool ist das beste unter Linux?