web-dev-qa-db-fra.com

Comment puis-je optimiser le système d'exploitation pour les SSD?

Quelles mesures faut-il prendre avant/pendant/après l'installation d'Ubuntu sur un disque SSD pour optimiser les performances et assurer une durabilité maximale du disque?

145
Lars Haugseth

J'ai utilisé avec succès plusieurs techniques différentes pour améliorer la manière dont Ubuntu utilise le périphérique de stockage, qu'il s'agisse d'un disque SSD ou traditionnel.

Pour les disques SSD, vous cherchez à minimiser le nombre d'écritures du lecteur, car les lectures ne doivent pas ajouter d'usure au lecteur.

1) Gérer le fichier d'échange

Si vous ne mettez pas votre ordinateur en veille prolongée et que vous avez la mémoire RAM suffisante pour exécuter toutes vos applications, vous n’avez en principe pas besoin d’une partition d’échange.

Si vous avez un mélange de SSD et de disques durs, placez votre partition d'échange uniquement sur les disques durs.

2) Pas d'écriture pour les horodatages de lecture (convient pour les disques SSD et les disques durs)

Monter vos partitions avec les options noatime et nodiratime arrêtera les écritures timestamp quand vous lisez des fichiers et des dossiers. Ces écritures d'horodatage ne sont généralement pas requises, sauf si vous utilisez un client de serveur de messagerie local tel que mutt. La raison en est généralement une mauvaise idée, car chaque lecture produit une écriture lors de la mise à jour des horodatages. Cela diminue la durée de vie du SSD.

Editez votre /etc/fstab fichier de configuration (faites une sauvegarde - prenez une sauvegarde pour vous assurer que casser la configuration de votre fstab peut empêcher votre système de fonctionner):

cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab

Modifiez les options de montage de vos partitions en ajoutant le texte noatime et nodiratime aux lignes définissant votre racine (/) et d’autres partitions si vous les avez (/ home) - Remarque: si vous avez un/home partition, commencez simplement par changer cette partition si vous souhaitez casser quelque chose

# / was on /dev/sda2 during installation
UUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 /               ext4    noatime,nodiratime,errors=remount-ro 0       1

# /home was on /dev/sda3 during installation
UUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home           ext4    noatime,nodiratime,defaults        0       2

Vous devrez redémarrer votre ordinateur pour que ces modifications prennent effet.

3) Réduire les écritures à partir du système d'exploitation et des applications

En supposant que vous n'exécutez pas de serveur de produit essentiel, la plupart des gens ne consultent pas les journaux en cas de problème (en particulier les erreurs graves sont rares pour la plupart des utilisateurs Ubuntu). Par conséquent, vous pouvez configurer Ubuntu pour que tous les journaux soient écrits dans la mémoire RAM plutôt que sur le disque SSD.

Remarque: n'effectuez les modifications suivantes que lorsque vous avez installé tous les logiciels que vous allez utiliser (notamment le serveur Web Apache). Sinon, vous pourriez rencontrer des problèmes de répertoires manquants dans/var/log

Pour en savoir plus sur cette approche, voir prolongation de la durée de vie de votre clé USB sur ubuntu-eee.com

Ouvrez /etc/fstab avec un éditeur (en supposant que vous ayez sauvegardé le fichier/etc/fstab)

gksudo gedit /etc/fstab

Ajoutez les lignes suivantes à la fin du fichier fstab et enregistrez:

# Uncomment these after all server based applications installed - eg. Apache
#tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 
#tmpfs /var/log/apt tmpfs defaults,noatime 0 0
# none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0

Vous devrez redémarrer votre ordinateur pour que ces modifications prennent effet.

Voir également:

107
jr0cket

SSD Life

En général, cela ne me dérangerait pas - les inquiétudes concernant la vie des disques SSD sont exagérées. Vous pouvez lire ceci article détaillé sur les raisons pour lesquelles vous ne devriez vraiment pas vous inquiéter . En bref, les circuits à l'intérieur des SSD modernes gèrent le nivellement de l'usure pour vous, et ils savent le faire bien mieux que vous.

Dans cet article, vous calculez la durée de vie d’un disque SSD recevant des écritures à une vitesse continue de 80 M/s. La vie est 51 ans . Ceci est basé sur la technologie de 2007 - la vie des disques SSD sera plus longue maintenant. Et vous n'écrirez probablement pas sur votre disque SSD à 80 M/s 24h/24.

Performances SSD

Cependant, la dégradation des performances dans le temps peut poser problème, et TRIM est la solution. Il y a deux options

  • tRIM automatique/en ligne, aka rejeter
  • tRIM manuel

Vous devez activer vous-même le TRIM automatique . (En gros, vous ajoutez l'option discard à vos options de montage, à condition que vous utilisiez ext4.) J'ai trouvé un article de blog indiquant que l'option de suppression ralentit votre système lors de la suppression de fichiers .

Vous pouvez parfois le faire manuellement (ou dans un travail cron) en utilisant fstrim . Si vous n'avez qu'une seule partition, il vous suffit de:

Sudo fstrim /

Notez que fstrim est uniquement disponible dans les versions 11.10 et supérieures. Pour les systèmes plus anciens, vous aurez besoin du script wiper.sh. J'ai trouvé le script à /usr/share/doc/hdparm/contrib/wiper.sh.gz sur mon système.

Si vous vous demandez, le problème que TRIM résout, comme décrit par Wikipedia , est le suivant:

Les disques SSD stockent les données dans des cellules de mémoire flash regroupées en pages, les pages (généralement 4 ko chacune) étant regroupées en blocs (généralement 128 pages par bloc, pour un total de 512 ko). Les cellules de mémoire flash NAND ne peuvent être écrites directement que lorsqu'elles sont vides. S'ils sont considérés comme contenant des données, le contenu doit d'abord être effacé avant qu'une opération d'écriture puisse être effectuée de manière fiable. Dans les disques SSD, une opération d'écriture peut être effectuée au niveau de la page, mais en raison de limitations matérielles, les commandes erase affectent toujours des blocs entiers. En conséquence, écrire des données sur un support SSD est très rapide tant que des pages vides peuvent être utilisées, mais ralentit considérablement une fois que les pages précédemment écrites doivent être écrasées . Dans la mesure où un effacement des cellules de la page est nécessaire avant de pouvoir l'écrire à nouveau, et que seuls des blocs entiers puissent être effacés, un écrasement initiera un cycle de lecture-effacement-modification-écriture: Le contenu de tout le bloc doit être stocké dans le cache avant de pouvoir être effacé sur le support flash. La page écrasée est modifiée dans le cache afin que le bloc mis en cache soit à jour, puis uniquement dans son intégralité (avec mise à jour de la page). ) écrit sur le support flash . Ce phénomène est connu sous le nom d'amplification d'écriture.

92
Hamish Downer

Il y a plusieurs points:

Alignement:

Ce qui est souvent souligné est le droit alignement de la partition. Cela devrait être égal à la taille de bloc du SSD. Jouez en toute sécurité et alignez vos partitions sur les limites du MiB. Notez que vous ne pouvez pas faire cela avec l'outil de partition du programme d'installation Ubuntu (qui utilise MB, pas MiB), mais vous pouvez démarrer le CD live, utiliser Gparted (qui utilise MiB), puis cliquez sur Installer pour utiliser les partitions que vous avez configurées.

Le bon ordonnanceur:

Un point important est le ordonnanceur qui devrait être noopname__. Vous pouvez définir ce planificateur via kernelparameter elevator=noop ou via une entrée echo noop > /sys/block/sda/queue/scheduler dans votre rc.local.

Mountflags:

Je recommanderais noatimeet discardname__

Tmpfs

Placer tmp sur un disque mémoire peut augmenter la durée de vie du disque SSD. Pour utiliser ceci, placez la ligne suivante dans votre fstab: none /tmp tmpfs defaults 0 0

Généralement, si vous voulez approfondir ce sujet, je vous recommanderais this excellent wiki-article.

20
Sebastian Rühl

Cours de réglage rapide pour votre SSD sur Ubuntu:

système de fichiers

Arch wiki mentions quelques options préférables pour le système de fichiers SSD - l'une d'entre elles est instable, les autres sont ext *. Je suppose que ext4 est l’un des meilleurs choix.
Remarque: dans le cas de ext4 , vous pouvez utiliser l'option de montage discard.

fstab

# <file system> <mount point> <type> <options>                                  <dump>  <pass>
proc            /proc         proc   nodev,noexec,nosuid                        0       0
tmpfs           /tmp          tmpfs  nodev,nosuid,noatime,mode=1777             0       0
/dev/sda1       /             ext4   defaults,noatime,discard,errors=remount-ro 0       1
/dev/sda2       /home         ext4   defaults,noatime,discard,user_xattr        0       2
/dev/sda3       /windows      ntfs   defaults,noatime,discard,umask=007,gid=46  0       0

Peu de choses importantes ici sont:

  • Pour les systèmes avec> = 2 Go de mémoire, il est souhaitable de localiser/tmp dans la RAM.
  • Aucune partition swap. De nos jours, il n'est nécessaire que pour l'hibernation, car les machines modernes disposent d'une assez grande quantité de RAM.
  • noatime et discard options. L'info est ici .

planificateur

Envisagez de passer du planificateur par défaut, qui correspond à cfq (mise en file d'attente parfaitement équitable) sous la plupart des distributions Linux, au planificateur noop ou d'échéance pour un disque SSD. L'utilisation du planificateur noop, par exemple, traite simplement les demandes dans l'ordre dans lequel elles sont reçues, sans prendre en compte l'emplacement réel des données sur le disque. Cette option est jugée avantageuse pour les disques SSD, car les temps de recherche sont identiques pour tous les secteurs du disque SSD.

Ajoutez ce qui suit dans /etc/rc.local :

# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler

info

ndeux

16
Andrejs Cainikovs

4) activer la TRIM automatique

Si votre SSD le prend en charge, vous devez également activer la fonction TRIM automatique (comme décrit ici ).

8
Uli

TRIM permet à un système d'exploitation d'informer un disque SSD des blocs de données qui ne sont plus considérés comme utilisés et qui peuvent être effacés en interne. Le découpage permet au SSD de gérer à l’avance la surcharge de la récupération de place, ce qui ralentirait considérablement à l’avenir les opérations d’écriture futures sur les blocs concernés. 1

Dans Ubuntu 14.04, une nouvelle fonctionnalité a été ajoutée au paquet util-linux qui coupe régulièrement les disques SSD automatiquement, mais seuls les SSD Intel et Samsung ont TRIM activé par défaut. , car certains disques SSD bon marché peuvent même se maquiller lorsqu'ils exécutent TRIM.2 Le contenu de /etc/cron.weekly/fstrim dans Ubuntu 14.04:

#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -e

# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g.  https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all

1https://en.wikipedia.org/wiki/Trim_%28computing%29
2Comment Trim est-il activé?

3
karel

Je n’ajouterais pas cette ligne à votre dossier fstab, le dossier var/tmp étant censé survivre à un redémarrage, cela pourrait vous causer des problèmes.

tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

Lorsque je configure un nouveau système, je laisse tout le dossier tmp commenté de cette façon, si quelque chose se passe, je peux consulter les journaux et autres éléments. Ensuite, une fois que je disposerai de la configuration principale du système, je les commenterai, mais je n’ajoute jamais la ligne ci-dessus, voici ce que j’utilise:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 
tmpfs /var/log/apt tmpfs defaults,noatime 0 0

Et si je rencontre des problèmes avec mon système, je les commente pour pouvoir tout vérifier, même après un redémarrage ou un redémarrage forcé après un blocage.

De plus, vous n’avez pas besoin de nodiratime, l’option noatime s’occupe des deux.

En ce qui concerne TRIM, si votre hw/sw le supporte, c’est un must, je n’utilise pas le rejet dans fstab. Je crée un cron quotidien, parce que mon PC est toujours allumé, en faisant ceci:

gksu gedit /etc/cron.daily/trim

Ajoutez ensuite ceci au fichier et sauvegardez (Si vous n'avez pas de partition séparée/home sur ssd, ou si vous avez d'autres parties qui sont sur ssd, vous devriez avoir une idée de la façon de modifier ceci:

#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG

Ensuite, rendez le fichier exécutable par:

Sudo chmod +x /etc/cron.daily/trim

J'édite aussi mon rc.local comme suit:

gksu gedit /etc/rc.local

Ajoutez ceci au-dessus de "sortie 0" et au-dessous du dernier #:

# Modification for SSD
# you may want to add more folders to be checked/created to this list
for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba speech-dispatcher unattended-upgrades; do
  if [ ! -e /var/log/$dir ] ; then
    mkdir /var/log/$dir
  fi
done

Vous pouvez copier et coller à partir d'ici pour qu'il n'y ait pas d'erreur. Pour le profane, cela ne semble pas aller de soi.

J'ai également lu que laisser 10% de votre disque SSD non formaté peut aider à prolonger la durée de vie, cela reste à voir. Je n'ai pas lu beaucoup de choses là-dessus, donc je ne peux pas en donner la garantie s'il est logique de le faire.

C’est le meilleur guide complet, il n’a pas survolé Google pendant une journée, puis il vous a proposé un guide, vous devriez le consulter ICI

3
JohnRB

Il existe quelques bonnes informations. Comment modifier et optimiser le disque SSD pour Ubuntu, Linux Mint à partir de http://namhuy.net/1563/how-to-Tweak-and-optimize-ssd-for-ubuntu-linux-mint .html vous pourriez être intéressé par

Utiliser le préchargement

Pour installer le préchargement sur Ubuntu, Linux Mint ou des distributions basées sur Debian

# apt-get update && apt-get install preload

Eteignez votre échange

Pour modifier le paramètre swappiness:

$ su -
# nano /etc/sysctl.conf

Et ajoutez cette ligne dans le fichier sysctl.conf.

vm.swappiness = 10
2
Sue Russell

Il est clair que /var/tmp ne devrait pas figurer dans tmpfs car, par définition, son contenu doit être préservé au-delà du redémarrage:

2
user95602

Ok "longue histoire":

  1. Oui. C'est comme un disque dur normal. Ici est un bon aperçu.
  2. Quelques extras spéciaux, que je couvrirai.
  3. Plutôt bien. Je l'utilise avec un serveur.

Formatez-le en tant que ext4 lors de l'installation et créez un petit échange d'environ 1 Go. Après avoir installé, éditez fstab avec Sudo gedit /etc/fstab et ajoutez la ligne suivante

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Cela créera une clé USB pour vos fichiers temporaires, ce qui réduira le vieillissement. Ajoutez également noatime,nodiratime,discard à votre ligne ext4 après les valeurs par défaut. Cela permettra également de réduire l'usure et d'activer la fonction TRIM. Enregistrez et redémarrez.

2
gajdipajti

UPS est requis. Dans le fichier /etc/sysctl.conf

vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10

Recherchez le démon du fichier de configuration, généralement /etc/syslog.conf или /etc/rsyslog.d/ et tous les chemins du formulaire /var/log/ changent en écrivant un signe moins ("-") devant les chemins.Avant mail.err

/var/log/mail.err

Après
mail.err -/var/log/mail.err

utilisez FS __ btrfs et utilisez l'option -o ssd

Plus http://vasilisc.com/speedup_ubuntu_eng#speedup_fs

Comment modifier et optimiser les disques SSD pour Ubuntu, Linux Mint

Activer TRIM

TRIM (La commande Trim permet à un système d'exploitation de savoir quels blocs SSD ne sont pas utilisés et peuvent être effacés)

Commencez par sauvegarder fstab au cas où quelque chose ne va pas.

# cp /etc/fstab ~/fstab.bk

Editer le fichier fstab

# nano /etc/fstab

Ajouter à vos disques ou partitions ssd, après ext4

UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,errors=remount-ro 0 1
Adding noatime and nodiratime

noatime et nodiratime sont des options de montage sous linux pour le système de fichiers linux. noatime désactive les mises à jour atime sur le système de fichiers et nodiratime désactive les mises à jour atime sur le système de répertoires. En ajoutant noatime et nodiratime, les gains de performances seront considérablement réduits.

Editer le fichier fstab

# nano /etc/fstab

Ajoutez noatime, nodiratime à vos lecteurs ou partitions ssd, après ext4

UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
1
user223973

Je suggère de ne placer que les éléments lus au moment du démarrage sur le SSD, des applications pouvant nécessiter beaucoup de temps de chargement. Données, journaux et autres éléments non critiques que je localiserais sur un disque dur normal. Vous pouvez également configurer votre Ubuntu pour le charger uniquement. une grosse initramfs à partir de SSD au démarrage et ne pas écrire les modifications apportées à ssd.Cet avantage est que les modifications apportées à cette partition ne sont pas persistantes, ce qui est comparable à une protection de votre système d’amorçage. Vous auriez donc besoin de beaucoup plus RAM bien sûr.

Je voudrais par exemple placez les partitions /,/etc,/usr,/boot,/lib 32/64 sur SSD avec sth like

/ opt,/bin,/sbin,/root,/home et même swap (augmenter la RAM !!!) sur le disque dur

Wikipedia dit:

Le noyau Linux supporte la fonction TRIM à partir de la version 2.6.33. Le système de fichiers ext4 est pris en charge lors du montage à l'aide du paramètre "rejeter". Les utilitaires de disque les plus récents (et donc les logiciels d'installation qui les utilisent) appliquent également un alignement correct des partitions.

Pour les sauvegardes, il existe plusieurs manières, dont la plus simple est la (r) sync plus tâche cron.

0
Michael K