Kurze Antwort
Wählen Sie ext4 und hängen Sie esdiscard entweder mit der Option für TRIM- Unterstützung ein oder verwenden Sie FITRIM (siehe unten). Verwenden Sie diese noatimeOption auch, wenn Sie "SSD-Verschleiß" befürchten.
Ändern Sie nicht Ihren Standard-E / A-Scheduler (CFQ) auf Servern mit mehreren Anwendungen , da dieser für Fairness zwischen Prozessen sorgt und automatische SSD-Unterstützung bietet. Allerdings verwenden Frist auf Desktops eine bessere Ansprechbarkeit unter Last zu erhalten.
Um eine ordnungsgemäße Datenausrichtung zu gewährleisten, muss der Startsektor jeder Partition ein Vielfaches von 2048 (= 1 MiB) sein. Sie können fdisk -cu /dev/sdXsie erstellen. Bei neueren Distributionen wird dies automatisch für Sie erledigt.
Überlegen Sie zweimal, bevor Sie Swap auf SSD verwenden. Es wird wahrscheinlich viel schneller sein als das Auswechseln auf der Festplatte, aber es wird auch die Festplatte schneller verschleißen (was möglicherweise nicht relevant ist, siehe unten).
Lange Antwort
Ext4 ist das gängigste Linux-Dateisystem (gut gepflegt). Es bietet gute Leistung mit SSD und unterstützt die TRIM (und FITRIM) -Funktion gute SSD - Leistung im Laufe der Zeit zu halten (dies löscht nicht verwendete Speicherblocks für die schnellen später Schreibzugriff). Nilfs ist speziell für Flash - Speicher - Laufwerke konzipiert, aber nicht nicht wirklich besser als ext4 auf Benchmarks. Btrfs ist noch experimentell betrachtet (und nicht wirklich eine bessere Leistung entweder ).
Die TRIM- Funktion löscht SSD-Blöcke, die vom Dateisystem nicht mehr verwendet werden. Dies optimiert die langfristige Schreibleistung und wird aufgrund ihres Designs für SSD empfohlen. Dies bedeutet, dass das Dateisystem das Laufwerk über diese Blöcke informieren kann. Die discardmount-Option von ext4 gibt solche TRIM- Befehle aus, 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 FITRIM vermeiden discardund gelegentliche Batch- Discards durchführen (z. B. von der Crontab). Das fstrimDienstprogramm erledigt dies (online) sowie die -E discardOption von fsck.ext4. Sie benötigen jedoch eine "aktuelle" Version dieser Tools.
Möglicherweise möchten Sie die Anzahl der Schreibvorgänge auf Ihrem Laufwerk begrenzen, da SSD in dieser Hinsicht eine begrenzte Lebensdauer hat. Keine Sorge , die derzeit schlechteste 128-GB-SSD unterstützt mindestens 20 GB an geschriebenen Daten pro Tag über einen Zeitraum von mehr als 5 Jahren (1000 Schreibzyklen pro Zelle). Bessere (und auch größere) können viel länger halten: Sie werden es sehr wahrscheinlich bis dahin ersetzt haben.
Wenn Sie Swap auf einer SSD verwenden möchten, erkennt der Kernel eine nicht rotierende Festplatte und sortiert die Swap-Nutzung nach dem Zufallsprinzip (Kernel Level Wear Leveling): SSWenn Swap aktiviert ist, wird in der Kernel-Nachricht ein (Solid State) angezeigt:
Hinzufügen von 2097148k Swap auf / dev / sda1. Priorität: -1 erstreckt sich über: 2097148k SS
Außerdem stimme ich den meisten Antworten von aliasgar zu (auch wenn das meiste von dieser Website kopiert wurde ), aber ich muss dem Scheduler- Teil teilweise widersprechen . Standardmäßig ist der Termin - Scheduler ist für Drehplatten optimiert , wie es den implementiert Aufzug Algorithmus . Lassen Sie uns diesen Teil klären.
Lange Antwort auf Scheduler
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 1für Festplatten und 0für eine SSD bekommen.
Anhand dieser Informationen kann der CFQ-Scheduler nun sein Verhalten anpassen. Seit 3.1 Linux, der Kernel - Dokumentation cfq-iosched.txtDatei sagt :
CFQ verfügt über einige Optimierungen für SSDs und wenn es ein nicht rotierendes Medium erkennt, das eine höhere Warteschlangentiefe unterstützen kann (mehrere Anforderungen gleichzeitig im Flug), [...].
Außerdem versucht der Deadline Scheduler, ungeordnete Kopfbewegungen auf Rotationsscheiben basierend auf der Sektornummer zu begrenzen. Zitierendes Kerneldokument deadline-iosched.txt, fifo_batch Optionsbeschreibung :
Anforderungen werden in "Stapel" einer bestimmten Datenrichtung (Lesen oder Schreiben) gruppiert, die in aufsteigender Sektorreihenfolge bearbeitet werden.
Es kann jedoch interessant sein, diesen Parameter bei Verwendung einer SSD auf 1 zu setzen:
Dieser Parameter legt das Gleichgewicht zwischen der Wartezeit pro Anforderung und dem Gesamtdurchsatz fest. Wenn eine niedrige Latenz das Hauptanliegen ist, ist eine geringere Latenz besser (wobei ein Wert von 1 das Verhalten ergibt, bei dem zuerst die Leistung erbracht wird). Das Erhöhen von fifo_batch verbessert im Allgemeinen den Durchsatz auf Kosten von Latenzschwankungen.
Einige Benchmarks deuten darauf hin, dass zwischen den verschiedenen Schedulern kaum Leistungsunterschiede bestehen. Warum dann nicht Fairness empfehlen ? wenn CFQ selten schlecht in der Bank ist . Bei Desktop-Setups ist die Reaktionszeit bei Verwendung von Deadline unter Last aufgrund des Designs in der Regel besser (wahrscheinlich jedoch mit geringeren Durchsatzkosten).
Allerdings würde ein besserer Benchmark versuchen, Deadline mit zu verwenden fifo_batch=1.
Um Deadline auf SSDs standardmäßig zu verwenden, können Sie eine Datei /etc/udev.d/99-ssd.ruleswie folgt erstellen :
# 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"
gdisk&grub 2.0.x(ich glaube, jemand hat es in einer Antwort erwähnt) und MBR ist die Legacy-Methode unter Verwendung der altengrub 0.9.7undfdisk.. Sie können mehr hier finden: wiki.archlinux.org/index.php/Solid_State_Drives