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


146

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?

Réponses:


108

J'ai utilisé avec succès plusieurs techniques différentes pour améliorer la façon 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 disposez de suffisamment de mémoire RAM pour exécuter toutes vos applications, vous n’avez en principe pas besoin d’une partition de swap.

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 SSD et les disques durs)

Monter vos partitions avec les options noatime et nodiratime arrêtera les écritures timestamp lors de la lecture de fichiers et de 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.

Modifiez votre fichier de configuration / etc / fstab ( faites attention - effectuez une sauvegarde pour vous assurer que casser votre configuration 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 les autres partitions si vous les avez (/ home) - Remarque: si vous avez une partition / home, commencez par changer cette partition si vous êtes soucieux de 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éduction des é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 (en particulier des éléments tels que le serveur Web Apache). Dans le cas contraire, vous risquez de rencontrer des problèmes de répertoires manquants dans / var / log.

Pour en savoir plus sur cette approche, reportez-vous à la section sur la 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:


7
En ce qui concerne les journaux et le tmpfsreste , les lignes sont commentées. Pourquoi alors ajouter ces lignes ferait-il une différence? Avons-nous besoin de l'ajouter sans commentaire?
Oxwivi

8
Je peux comprendre si cela vise à améliorer la vitesse, mais la plupart de ce que vous avez écrit semble être destiné à améliorer la vie des disques SSD. N'est-il pas vrai qu'avec les disques SSD modernes, ces améliorations sont inutiles? Et au détriment d'une utilisation accrue de la RAM! (par exemple, voir le lien donné dans cette autre réponse )
Chan-Ho Suh

7
Il n'y a pas besoin de 2). relatime empêche très bien les écritures et est actif par défaut depuis le noyau 2.6.30 .
Mihai Capotă

3
Pour ajouter au commentaire de @ MihaiCapotă, il existe une réponse Server Fault avec plus de détails sur la raison pour laquelle noatime n'est pas nécessaire.
Cas

1
Ils disent que noatime implique ici nodiratime , il suffit donc d’ajouter l’ancienne option.
Jarno

92

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 cet 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 de 51 ans . Ceci est basé sur la technologie de 2007 - la vie des disques SSD sera plus longue maintenant. Et vous n'écrirez certainement pas sur votre disque SSD à 80 M / s 24h / 24.

Performances SSD

Cependant, la dégradation des performances au fil du temps peut être un problème, et TRIM est la solution. Il y a deux options

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

Vous devez activer le TRIM automatique vous-même . (En gros, vous ajoutez l' discardoption à 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 wiper.shscript. J'ai trouvé le script /usr/share/doc/hdparm/contrib/wiper.sh.gzsur mon système.

Si vous vous demandez, le problème que TRIM résout, 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, l’ écriture de données sur le 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.. Puisqu'il faut effacer les cellules de la page avant de pouvoir l'écrire à nouveau, et que seuls des blocs entiers puissent être effacés, un écrasement initiera un cycle lecture-effacement-modification-écriture: le contenu de tout le bloc doit être stocké. dans la mémoire cache avant son effacement effectif sur le support flash, la page écrasée est modifiée dans la mémoire cache afin que le bloc mis en cache soit à jour et seul le bloc entier (avec la page mise à jour) soit alors écrit sur le support flash . Ce phénomène est connu sous le nom d'amplification d'écriture.


8
J'aimerais pouvoir voter plusieurs fois. CECI serait l'une de ces réponses. Ce lien a résolu une inquiétude que je ressentais depuis longtemps. Merci beaucoup Hamish.
Luis Alvarado

Article intéressant de storagesearch.com. Je souhaite qu'il donne une date! La réponse ci-dessus signifie-t-elle donc que les propriétaires de disques SSD n'ont pas besoin de se soucier des suggestions de la première réponse, à l'exception de TRIM? Je n'ai pas beaucoup besoin de temps d'accès aux fichiers, mais avec 2 Go de mémoire, le fait de disposer d'une partition d'échange peut toujours être utile lorsque vous exécutez un logiciel de retouche photo avec plusieurs autres programmes gourmands en mémoire tels que Chrome.
Lawrence I. Siden

@lsiden: l'article mentionne "Plus tard: - en mai 2008" à mi-parcours. Et vous avez raison de ne pas vous inquiéter de tout ce qui se trouve dans le premier article. Il suffit d’activer TRIM et de profiter de la vitesse :)
Hamish Downer

2
L'article fait référence aux disques SSD d'entreprise: il utilise 2 millions de cycles d'endurance en écriture. Les disques SSD grand public ont environ 3000-5000 cycles. Un disque SSD de 128 Go avec 3 000 cycles permet une écriture continue de 80 Mo / s sur 57 jours.
Apprentissage

1
À partir de la version 14.10 d’Ubuntu, TRIMming s’effectue automatiquement toutes les semaines sur tous les SSD pris en charge par fstrim. réf.
KrisWebDev

20

Il y a plusieurs points:

Alignement:

Ce qui est souvent souligné est le bon 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 planificateur qui devrait être noop. Vous pouvez définir ce programmateur via kernelparameter elevator=noopou via une entrée echo noop > /sys/block/sda/queue/schedulerdans votre fichier rc.local.

Drapeaux:

Je recommanderais noatimeetdiscard

Tmpfs

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

De manière générale, si vous souhaitez approfondir ce sujet, je vous recommanderais cet excellent article wiki.


16

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

système de fichiers

Arch wiki mentionne quelques options préférables pour le système de fichiers SSD - l'une d'elles est instable, les autres sont ext *. Je suppose que ext4 est l’un des meilleurs choix.
Remarque: Dans le cas d’ ext4, vous voudrez peut-être utiliser l’ discardoption de montage.

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.
  • Pas de swappartition. De nos jours, il n'est nécessaire que pour l'hibernation, car les machines modernes disposent d'une assez grande quantité de RAM.
  • noatimeet discardoptions. 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 ont été reçues, sans prendre en compte l'emplacement réel des données sur le disque. Cette option est considérée comme 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

un deux


2
Sans échange , et avec /tmpde la RAM, il est très facile de se retrouver dans une situation de mémoire insuffisante, car de nombreux programmes utilisent /tmpcomme espace de stockage (par exemple, Brasero pour stocker des images DVD).
organiser

5
Pas vraiment. tmpfspar défaut, 10% de la RAM. La taille peut être ajustée en utilisant l' sizeoption si.
Andrejs Cainikovs

1
Brasero est un mauvais exemple, il ne devrait pas le faire en premier lieu, comme l'explique Lennart Poettering dans son blog 0pointer.de/blog/projects/tmp.html
LiveWireBT

8

4) activer la TRIM automatique

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


3

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.

Aussi, 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 en 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, ce n'est pas le cas.

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 a trouvé un guide, vous devriez le consulter ICI


L'idée est-elle d'ajouter tous les répertoires sous / var / log à /etc/rc.local? Que se passe-t-il si vous n’ajoutez pas les répertoires? Je suppose qu’il faudra peut-être ajouter plus de répertoires si vous installez de nouveaux paquets. Est-ce que /etc/rc.local pourrait être mis à jour pendant l’arrêt pour créer tous les répertoires au prochain démarrage?
Jarno

Dans Ubuntu 14.04 et versions ultérieures, un travail cron /etc/cron.weekly/fstrim est défini par défaut pour couper les systèmes de fichiers toutes les semaines. Pour 14.04, voir ici . Ubuntu 15.10 utilise /sbin/fstrim --all || truedans le script fstrim.
Jarno

Au moins le répertoire / var / log / installer a un sous-répertoire appelé ubiquity-apt-clone dans Xubuntu 15.10. Devez-vous créer des sous-répertoires de manière récursive?
Jarno

3

TRIM permet à un système d'exploitation d'informer un disque SSD des blocs de données dont l'utilisation n'est plus considérée et qui peuvent être effacés en interne. Le découpage permet au disque SSD de gérer à l’avance la surcharge de la récupération de place, ce qui ralentirait considérablement 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 SSD automatiquement, mais seuls les SSD d’Intel et de Samsung ont TRIM activé par défaut, car certains SSD bon marché peuvent même se bricoler lors de l’exécution de TRIM. 2 Le contenu de /etc/cron.weekly/fstrimdans 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

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



2

Ok "longue histoire":

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

Formatez comme ext4lors de l’installation et créez un petit échange d'environ 1 Go. Après avoir installé edit fstab avec sudo gedit /etc/fstabet 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.


Merci beaucoup. Je suis confus parce que j'ai toujours utilisé Linux à double amorçage et que ce sera la première fois que j'installe Linux sur un nouveau SSD. Le processus et le stockage sont donc nouveaux pour moi. mais il semble que l’installation d’Ubuntu sur disque dur soit la même chose, non?
Varun

C'est le même. Lors de l'installation, il peut vous être demandé de créer la table de partition, mais cela ne représente qu'un clic.
gajdipajti

Autre question: Dois-je modifier le BIOS de mon ordinateur portable Dell? Je vais installer SSD et Ubuntu aujourd'hui?
Varun

Non, le bios moderne détecte automatiquement les disques durs de type.
gajdipajti

Merci beaucoup, très utile, vous permettra de savoir ce qui se passe demain :)
Varun

2

Il y a quelques bonnes infos Comment modifier et optimiser SSD pour Ubuntu, Linux Mint de http://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html vous pourriez s'intéresser à

Utiliser la précharge

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

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

Éteignez 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

UPS est requis.Dans le /etc/sysctl.conffichier

vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10

Recherchez le démon de 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 moyens. Avant mail.err

/var/log/mail.err

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

utiliser FS btrfset utiliser l' -o ssdoption

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


1

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

0

Je suggère de ne placer que les éléments lus au moment du démarrage sur le disque SSD. Peut-être que les applications nécessitant beaucoup de temps à charger.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 de SSD au démarrage et ne pas écrire les modifications apportées à ssd.Cela a l'avantage que les modifications apportées à cette partition ne sont pas persistantes, ce qui est comme une protection pour votre système de démarrage. Par conséquent, vous auriez besoin de beaucoup plus de RAM.

Je voudrais par exemple placer les partitions /, / etc, / usr, / boot, / lib 32/64 sur SSD tout en 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.


Savez-vous à quoi sert chacun des emplacements? Tous les emplacements mentionnés, à l'exception de /root, /homeet swap doivent être placés sur le SSD pour gagner du temps, car ils sont principalement en lecture seule. Pour gagner du temps, mettez aussi /varle SSD.
Lekensteyn

Cela dépend de ce que vous souhaitez accélérer et de la taille de votre disque SSD. 120 Go devrait suffire, d'accord, mais avec un SSD plus petit, vous atteignez facilement les frontières.
Michael K

La /partition de Kubuntu Oneiric nécessite 4,5 Go sur mon SSD. 20 Go suffisent pour /moins /home. Les efforts pour peaufiner la disposition du système de fichiers et la répartir sur plusieurs partitions n'en valent pas la peine.
Lekensteyn
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.