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 noatime
Option 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/sdX
sie 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 discard
mount-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 discard
und gelegentliche Batch- Discards durchführen (z. B. von der Crontab). Das fstrim
Dienstprogramm erledigt dies (online) sowie die -E discard
Option 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): SS
Wenn 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 1
für Festplatten und 0
für eine SSD bekommen.
Anhand dieser Informationen kann der CFQ-Scheduler nun sein Verhalten anpassen. Seit 3.1 Linux, der Kernel - Dokumentation cfq-iosched.txt
Datei 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.rules
wie 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.7
undfdisk
.. Sie können mehr hier finden: wiki.archlinux.org/index.php/Solid_State_Drives