Système de fichiers EXT4 + TRIM :
- EXT4 avec TRIM améliore les performances en réduisant les cycles d'écriture inutiles sur le disque SSD car ils limitent les cycles d'écriture-réécriture.
- Ubuntu et d'autres versions de Linux prennent en charge EXT 4 avec TRIM prêt à l'emploi.
Partition SWAP :
- Assurez-vous de ne pas disposer d'un espace SWAP sur le SSD, encore une fois pour réduire les cycles d'écriture.
- Si vous avez un lecteur mécanique, vous devez créer un espace SWAP sur le lecteur mécanique et éviter de l'avoir sur le SSD.
Alignement des partitions :
- La partition doit commencer sur une limite nette de 1 Mo afin que la taille de bloc du système de fichiers s'aligne sur la taille de bloc du SSD.
Utilisez donc EXT4 + TRIM avec un SWAP sur un disque dur mécanique ou pas de SWAP sur un SSD.
Ce qui précède peut être implémenté en se référant à la Source :Comment optimiser les performances du SSD.
Réponse courte
-
Choisissez ext4 , et soit montez-le avec le
discard
option pour le support TRIM, ou utilisez FITRIM (voir ci-dessous). Utilisez également lenoatime
option si vous craignez "l'usure du SSD". -
Ne modifiez pas votre planificateur d'E/S par défaut (CFQ) sur les serveurs multi-applications , car il assure l'équité entre les processus et dispose d'un support SSD automatique. Cependant, utilisez Deadline sur les ordinateurs pour obtenir une meilleure réactivité sous charge.
-
Pour garantir facilement un alignement correct des données, le secteur de départ de chaque partition doit être un multiple de 2048 (=1 Mio). Vous pouvez utiliser
fdisk -cu /dev/sdX
pour les créer. Sur les distributions récentes, il s'en occupera automatiquement pour vous. -
Réfléchissez à deux fois avant d'utiliser le swap sur SSD. Ce sera probablement beaucoup plus rapide par rapport au swap sur disque dur, mais cela usera également le disque plus rapidement (ce qui peut ne pas être pertinent, voir ci-dessous).
Réponse longue
- Systèmes de fichiers :
Ext4 est le système de fichiers Linux le plus courant (bien entretenu). Il offre de bonnes performances avec SSD et prend en charge le TRIM (et FITRIM) pour conserver de bonnes performances SSD au fil du temps (ceci efface les blocs de mémoire inutilisés pour un accès en écriture rapide et ultérieur). NILFS est spécialement conçu pour les lecteurs de mémoire flash, mais ne fonctionne pas vraiment mieux que ext4 sur des repères. Btrfs est toujours considéré comme expérimental (et n'est pas vraiment plus performant non plus).
- Performances SSD et TRIM :
Le TRIM La fonctionnalité efface les blocs SSD qui ne sont plus utilisés par le système de fichiers. Cela optimisera les performances d'écriture à long terme et est recommandé sur les SSD en raison de leur conception. Cela signifie que le système de fichiers doit pouvoir informer le lecteur de ces blocs. Le discard
option de montage de ext4 émettra un tel TRIM commandes lorsque les blocs du système de fichiers sont libérés. C'est la rejet en ligne .
Cependant, ce comportement implique une légère surcharge de performances. Depuis Linux 2.6.37, vous pouvez éviter d'utiliser discard
et choisissez de faire des éliminations par lots occasionnelles avec FITRIM à la place (par exemple depuis la crontab). Le fstrim
l'utilitaire le fait (en ligne), ainsi que le -E discard
possibilité de fsck.ext4
. Vous aurez cependant besoin d'une version "récente" de ces outils.
- Usure du SSD :
Vous voudrez peut-être limiter les écritures sur votre disque car le SSD a une durée de vie limitée à cet égard. Ne vous inquiétez pas trop cependant , le pire SSD de 128 Go d'aujourd'hui peut prendre en charge au moins 20 Go de données écrites par jour pendant plus de 5 ans (1000 cycles d'écriture par cellule). Les meilleurs (et aussi les plus gros) peuvent durer beaucoup plus longtemps :vous l'aurez très probablement remplacé d'ici là.
Si vous souhaitez utiliser swap sur SSD, le noyau remarquera un disque non rotatif et randomisera l'utilisation du swap (kernel level wear levelling) :vous verrez alors un SS
(Solid State) dans le message du noyau lorsque le swap est activé :
Ajout de 2097148k swap sur /dev/sda1. Priorité : -1 étendues :1 sur :2097148 000 SS
- Planificateurs d'E/S :
Aussi, je suis d'accord avec la plupart des aliasgar (même si la majeure partie a été -illégalement ?- copiée de ce site Web), mais je dois être en partie en désaccord sur le scheduler partie. Par défaut, le planificateur d'échéances est optimisé pour les disques rotatifs car il implémente l'algorithme d'ascenseur. Alors, clarifions cette partie.
Réponse longue sur les planificateurs
À partir du noyau 2.6.29, les disques SSD sont automatiquement détectés, et vous pouvez le vérifier avec :
cat /sys/block/sda/queue/rotational
Vous devriez obtenir 1
pour les disques durs et 0
pour un SSD.
Désormais, le planificateur CFQ peut adapter son comportement en fonction de ces informations. Depuis Linux 3.1, la documentation du noyau cfq-iosched.txt
le fichier dit :
CFQ a quelques optimisations pour les SSD et s'il détecte un support non rotatif qui peut prendre en charge une profondeur de file d'attente plus élevée (plusieurs requêtes en cours à la fois), [...].
En outre, le planificateur de date limite essaie de limiter les mouvements de tête non ordonnés sur les disques rotatifs, en fonction du numéro de secteur. Citation de la doc du noyau deadline-iosched.txt
, fifo_batch
description de l'option :
Les requêtes sont regroupées en `` lots '' d'une direction de données particulière (lecture ou écriture) qui sont traitées dans l'ordre croissant des secteurs.
Cependant, régler ce paramètre à 1 lors de l'utilisation d'un SSD peut être intéressant :
Ce paramètre règle l'équilibre entre la latence par demande et le débit global. Lorsque la faible latence est la principale préoccupation, plus petit est meilleur (où une valeur de 1 donne le comportement du premier arrivé, premier servi). L'augmentation de fifo_batch améliore généralement le débit, au prix d'une variation de latence.
Certains benchmarks suggèrent qu'il y a peu de différence de performances entre les différents planificateurs. Alors, pourquoi ne pas recommander l'équité ? quand CFQ est rarement mauvais sur le banc . Cependant, sur les configurations de bureau, vous bénéficierez généralement d'une meilleure réactivité en utilisant Deadline sous charge, en raison de sa conception (probablement à un coût de débit inférieur cependant).
Cela dit, un meilleur benchmark essaierait d'utiliser Deadline avec fifo_batch=1
.
Pour utiliser Deadline sur les SSD par défaut, vous pouvez créer un fichier, par exemple /etc/udev.d/99-ssd.rules
comme suit :
# 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"
L'article d'archlinux Solid State Drives dit dans la section Choix du système de fichiers :
De nombreuses options existent pour les systèmes de fichiers, notamment Ext2/3/4, Btrfs, etc.
Btrfs
La prise en charge de Btrfs a été incluse dans la version principale 2.6.29 du noyau Linux. Certains pensent qu'il n'est pas assez mature pour une utilisation en production alors qu'il y a aussi des adopteurs précoces de ce successeur potentiel d'ext4. Les utilisateurs sont encouragés à lire l'article Btrfs pour plus d'informations.Ext4
Ext4 est un autre système de fichiers prenant en charge le SSD. Il est considéré comme stable depuis le 2.6.28 et est suffisamment mature pour une utilisation quotidienne. Contrairement à Btrfs, ext4 ne détecte pas automatiquement la nature du disque; les utilisateurs doivent explicitement activer le support de la commande TRIM en utilisant l'option de montage discard dans fstab (ou avec tune2fs -o jeter /dev/sdaX).
Btrfs et Ext4 remplissent les deux principales exigences pour une utilisation efficace du SSD :
- Le système de fichiers doit pouvoir envoyer des commandes ATA_TRIM au SSD sous-jacent
- Le système de fichiers ne doit pas effectuer d'écritures inutiles sur le disque
Pour les performances, il y a deux autres exigences :
- Les partitions doivent être alignées sur la taille de bloc du SSD
- TRIM doit être explicitement activé pour chaque partition au format Ext4
Le premier est aujourd'hui automatique avec la plupart des programmes d'installation Linux. fdisk créera également des partitions à la frontière de 1024 Ko s'il est démarré avec les drapeaux "-cu".
La seconde est automatique pour Btrfs, mais pour Ext4, cela se fait manuellement en ajoutant "discard" à la liste des options de montage pour chaque partition Ext4 dans le fichier "/etc/fstab". Pour plus de détails, voir ce guide.
À mon avis, cela a nécessité peu de manipulations avec fstab pour Ext4, ce n'est pas une raison pour ne pas utiliser cet excellent système de fichiers mature.