Optimisation de linux pour les SSD

Pour parler de l'OS libre ensemble.
jawdrool
    unknown unknown

Optimisation de linux pour les SSD

Message par jawdrool »

Linux sur un SSD


Linux peut très bien s'adapter à un ssd (voir TRIM), mais bon comme c'est linux ça n'aurait pas été marrant si c'était activé directement et si pour cela il ne fallait pas aller triffouiller dans un fichier système en root.
Voici quelques astuces qu'on m'a donné ci et là pour allonger la durée de vie de votre SSD et optimiser ses performances dans le temps. Tout ce passe au niveau du fichier /etc/fstab.
Pour activer le discard votre kernel doit être supérieur ou égal à 2.6.33, et il est recommandé de le formater en ext4
Le TRIM n'étant pas géré par linux sur les partitions NTFS, evitez de vous servir de vos partoches ntfs sur SSD quand vous êtes sur linux ;)
:!: ATTENTION: Le fichier fstab est un fichier de type "touchepasàçaptitcon" il est vivement recommandé d'en faire une sauvegarde avant toute modification car la moindre erreur peut empêcher votre système de démarrer.
Je ne donnerai pas la methode pour ouvrir le fichier en root, déjà parce que ça peut changer selon la distro utilisé, de plus si on ne sais pas le faire il vaut mieux garder la modification du fstab pour plus tard ;).


Pour simplifier l'explication, voici mon fstab, ce qui a été modifié est surligné: [align=]
# /etc/fstab: static file system information.
#
# Created by Manjaro Live-Installer
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
#

# Racine (sur SSD)
UUID=9fceee42-3c27-4ec0-a67b-4233fca46e77 / ext4 defaults,noatime,discard,data=ordered 0 1

# Montage auto des parttions (non SSD)
UUID=00082B81082B7536 /videos ntfs defaults,noatime 0 0
UUID=66DEC44EDEC41867 /videos2 ntfs defaults,noatime 0 0
UUID=fb499023-dfb2-4fbe-80fe-a70624d18f91 /tempo ext4 defaults,noatime 0 0
UUID=428068E48068DFC1 /Donnees ntfs defaults,noatime 0 0

# TMPFS
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs noatime,mode=0755
tmpfs /ramdisk tmpfs noatime,mode=1777
tmpfs /home/jaw/.cache tmpfs noatime,nodev,nosuid,size=1400M
tmpfs /var/cache/pacman tmpfs noatime,mode=0755
[/align]

discard: ajoute le support du TRIM, allonge la durée de vie des ssd à utiliser uniquement sur les disques ssd

noatime: désactive l'écriture de la date du dernier accès au fichier. Perso je le met sur tout mes disques, ça boost les perfs et améliore l'autonomie des portable,et allonge la durée de vie des ssd. (Equivalent de ntfsdisablelastaccess sur windows)

data=ordered: à ma connaissance inutile de le préciser, je pense que c'est la méthode d'écriture de toutes les distros, cependant si ce n'est pas le cas chez vous le TRIM ne sera pas effectif. Vérifiez avec la commande mount(voir plus bas) ou dans le doute ajoutez le, au pire ça mange pas de pain.

et c'est (presque) tout :lol:
Si vous avez un swap:Par défaut, les distributions linux règlent la valeur de swapiness à 60. Ce qui signifie que la mémoire swap commence à être sollicitée dès qu'il reste moins de 60% de la RAM disponible. Swapper est synonyme d'écritures sur disque donc usure! On va donc régler ça pour qu'il ne l'utilise qu'en dernier recours:

Code : Tout sélectionner

su -c 'gedit /etc/sysctl.conf'
(peut varier selon votre editeur de texte) ajouter à la fin du fichier

Code : Tout sélectionner

vm.swappiness=0
On sauvegarde et la valeur sera effective au redémarrage suivant. Image


Pour aller plus loin...Introduction au tmpfs
Certains auront remarqué la présence d'une partie tmpfs dans mon fstab, qui ne correspond a aucun disque physique. Mais qu'est-ce que ça fout donc dans mon fstab?
Pour (beaucoup)simplifier le tmpfs est un disque dur virtuel situé sur la RAM ayant pour taille la moitié de celle-ci et le gros avantage de n'occuper que la place réellement utilisé.(et comme tout ramdisk ça atteind des vitesses à faire pâlir un ssd :lol: )
Pour optimiser mon système et soulager mon ssd j'y ai donc placé toute sorte de fichier temporaire (ou pas) qui ne pose pas de problème en cas de suppression.
Tout ce qui est monté sur tmpfs sera donc effacé à chaque démarrage,normal c'est sur la RAM. Voici le détail, à adapter selon votre utilisation/distribution.
En cas de problème, ponctuel ou non, je rappelle qu'il suffit de commenter(mettre un # devant) la ligne correspondante et redémarrer pour que le répertoire reprennent sa place sur le disque.
Par défaut sur arch le répertoire /run est monté en tmpfs, et sont redirigé vers /run: /var/run, /var/lock, /run/lock. Inutile donc de les préciser dans le fstab. Si ce n'est pas le cas chez vous rajoutez les lignes correspondantes

Code : Tout sélectionner

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 
Repertoire utilisé par linux pour les fichier temporaire, n'a rien a faire sur un ssd :P et est de toute façon vidé au démarrage.

Code : Tout sélectionner

tmpfs           /var/log  tmpfs    noatime,mode=0755
Fichiers texte où linux note tout ce qu'il ce passe. Perso je n'ai ni le niveau ni l'envie de lire ces logs |-) , et à force ça peut prendre une taille monstrueuse.

Code : Tout sélectionner

tmpfs           /ramdisk  tmpfs    noatime,mode=1777
Ça c'est à vous de voir, j'ai profité de l'occasion pour me faire un raccourci vers le ramdisk, pour extraire une archive, compiler un programme ou encoder une vidéo c'est un vrai plaisir. :rofl:




:!: ATTENTION ce qui suit est à adapter, ne pas copier en l'état:

Code : Tout sélectionner

tmpfs /home/jaw/.cache    tmpfs    noatime,nodev,nosuid,size=1400M
Déplace le cache des applications sur la ram (y compris chromium, firefox...Oubliez le about.config :P )
:!: Remplacez jaw par votre nom d'utilisateur et le paramètre size défini la taille maximum que vous lui accordez, ici 1400Mo

Code : Tout sélectionner

tmpfs           /var/cache/pacman  tmpfs    noatime,mode=0755
cache du gestionnaire de paquet, à adapter selon votre distribution, d'une manière générale /var/cache/votregestionnairedepaquet
:!: Utilisateur avancé: Ce répertoire n'étant sollicité qu'en cas d'installation de programme ou de mise à jour, les effets sur le SSD sont négligeable. De plus en cas de mise à jour foireuse, pas de downgrade possible!





:arrow: Vous pouvez monter encore pas mal de chose sur tmpfs, n'oubliez pas sur linux c'est vous le chef ;).
Image Et comme il est strictement interdit de faire un post sur linux sans utiliser la console, sous peine de poursuite :lol: :
vous pouvez utiliser la commande df pour vérifier que vos montages sont bien pris en compte:
Image La commande mount vous permet de vérifier si vos paramètres d'écriture (discard, noatime) sont bien pris en compte:

Image
Le tmpfs n'est pas comptabilisé comme de la ram utilisé mais comme du cache disque (faite un top ;) ), Exemple avec un fichier de 2 Go sur /ramdisk

Image
(Cliquer pour agrandir)
Le système ne compte que 1.1 Go utilisé, impossible de savoir ce qu'occupe réellement le tmpfs (à part avec df :P ). En cas de besoin de plus de ram, le tmpfs(dans la limite de sa taille, souvenez vous ½ram) sera redirigé vers le swap (si vous en avez un) et le vrai cache disque détruit
:!: Limitation du tmpfs:bah oui si il y a des avantages, il y a des inconvénients: Ne pas mettre de données importantes sur tmpfs, en cas de panne de courant c'est perdu! :@
l'OS et les programmes sont prioritaire dessus, en cas de besoin de plus de ram que disponible ils effacent le cache disque puis le tmpfs sans pitié. :@ aussi :devil:
Tapé avec les pieds pour Team AAZ
Modifié en dernier par jawdrool le dim. 26 janv. 2014 12:18, modifié 5 fois.
akhen
    unknown unknown

Re: Optimisation de linux pour les SSD

Message par akhen »

beau taf... ça ferai un bel e-book non ? :P
Zinzin
    unknown unknown

Re: Optimisation de linux pour les SSD

Message par Zinzin »

Merci ;-) joli.

Mi2a'talké
Sliden
    unknown unknown

Re: Optimisation de linux pour les SSD

Message par Sliden »

Joli post, merci.
KuronekoChris
Membre VIP
Membre VIP
Messages : 261
Enregistré le : lun. 18 avr. 2011 14:07
A remercié : 1 fois
A été remercié : 1 fois
    unknown unknown

Re: Optimisation de linux pour les SSD

Message par KuronekoChris »

Sympa j'ai un SSD et je cherchais un truc comme ça pour mon linux :D.

Merci pour le tuto ;)
ImageImage
Avatar du membre
Chewbacca
Administrateur du site
Administrateur du site
Messages : 8085
Enregistré le : ven. 5 nov. 2010 23:08
Localisation : Evry
A remercié : 36 fois
A été remercié : 13 fois
Contact :
    unknown unknown

Re: Optimisation de linux pour les SSD

Message par Chewbacca »

+200 Akhen!!


joli post ;)
"Un peuple qui oublie son Histoire est condamné à la revivre"
Zinzin
    unknown unknown

Re: Optimisation de linux pour les SSD

Message par Zinzin »

Ebookez moi ça les zamis et signons la fin de Windows sur nos pc :-)

Mi2a'talké
jawdrool
    unknown unknown

Re: Optimisation de linux pour les SSD

Message par jawdrool »

Merci à vous ;)
J'ai encore quelques infos et oublis à rajouter, je fais ça ce weekend ;)
signons la fin de Windows sur nos pc :-)
:fubar: Et je fais comment pour jouer après :D Je suis pas près de lacher mon dualboot :lol:
Avatar du membre
Prof
Administrateur du site
Administrateur du site
Messages : 8320
Enregistré le : lun. 5 avr. 2010 20:07
Localisation : Vosges
A remercié : 1 fois
A été remercié : 22 fois
Contact :
    unknown unknown

Re: Optimisation de linux pour les SSD

Message par Prof »

Akhen prépare la couverture. Jawdrool ajoute les infos complementaires et je m'occupe de la mise en page, ça vous tente ? Ce week-end?
Règlement du forum
Toute demande d'aide ou de liens par MP est inutile !
Avatar du membre
palerider
Administrateur du site
Administrateur du site
Messages : 6013
Enregistré le : lun. 21 mars 2011 09:18
Localisation : Vaucluse
A remercié : 43 fois
A été remercié : 225 fois
Contact :
    unknown unknown

Re: Optimisation de linux pour les SSD

Message par palerider »

Super tuto, bravo !

:)
J'aime les gens qui, pour briller, n'éteignent pas les autres.

Image
Répondre