Re: Disque SSD

Top Page

Reply to this message
Author: Olivier Allard-Jacquin
Date:  
To: ML Guilde
Subject: Re: Disque SSD
    Bonjour,

Le 10/12/2012 11:32, Christian ROLLAND a écrit :
> Hello,
>
>     je profite du fil parallèle sur le disque de 3To pour une question
> sur les SSD. Avec un SSD récent, doit-on prendre des précautions au
> niveau des écritures, du ramasse-miettes,etc... ou pas ?
> On branche le disque, on installe sa distrib et basta.

>
> Merci d'avance,
>
>     Christian


    Je viens de terminer la configuration d'une machine équipée d'un SSD
pour le / , et d'un DD de 2T pour les données. Aussi, je copie-colle ici
le résultat de mes recherches :


http://forum.zebulon.fr/tuto-optimiser-ssd-dans-gnu-linux-t184346.html
http://doc.ubuntu-fr.org/ssd_solid_state_drive

<extraits>
    Supprimer le swap
Cette astuce ne s'adresse qu'à ceux dont la machine dispose d'au moins 1
Go de RAM. Il est possible dans ce cas, et suivant l'utilisation que
l'on fait de la machine de ne pas se servir de swap.


Pour cela, soit on ne créé aucune partition de swap lors de
l'installation de la distribution, soit, dans le fichier /etc/fstab, on
commente la ligne montant le fichier swap :
UUID=bd746caf-bd0c-4649-baa7-d680bb91a6d0 swap swap defaults 0 0

devient alors :

#UUID=bd746caf-bd0c-4649-baa7-d680bb91a6d0 swap swap defaults 0 0

Il peut être préférable d'utiliser la méthode consistant à ne pas monter
une partition de swap existante, de manière à pouvoir la réactiver
facilement en cas de besoin, l'utilisation du swap pouvant varier en
fonction de l'utilisation de la machine.

Si malgré tout vous avez créé une partition SWAP (notamment pour
bénéficier de l'hibernation sur les portables), mais que vous souhaitez
en minimiser l'usage, rien n'est perdu pour autant, ouvrez le fichier
/etc/sysctl.conf (avec les droits d'administration) et ajoutez à la fin :

vm.swappiness=0


    mettre les fichiers temporaires en mémoire vive


Le système utilise un certains nombre de fichiers temporaires, qu'il
n'est pas nécessaire de conserver d'un démarrage à l'autre. Il est
possible de les placer dans la mémoire vive (qui est vidée à l'arrêt de
l'ordinateur) au lieu de les avoir dans le SSD.

Cependant, certains logiciels (tels que l'environnement de bureau KDE)
utilisent un grand nombre de fichiers temporaires, et devront alors les
recréer, ce qui peut ralentir le démarrage si vous utilisez ces logiciels.

Pour mettre les fichiers temporaires en mémoire vive (par exemple, pour
une taille maximum de 1 Gio), ouvrez le fichier /etc/fstab (avec les
droits d'administration) et ajoutez-y la ligne suivante :

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


      Trimming à la volée


conditions requises :

    disposer d'un SSD supportant le TRIM
    utilise une distribution proposant au moins le kernel 2.6.33
    utiliser ext4 comme système de fichier


C'est de loin la solution la plus facile et la plus souple. Il suffit
alors d'éditer son fichier /etc/fstab (en mode administrateur) et de
rajouter l'option discard dans les lignes correspondant au montage des
volumes en ext4.

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# /dev/sda1
UUID=f0d9c48e-00c4-4225-ab21-1c5a42194bc8 /               ext4
async,noatime,errors=remount-ro 0       1
# /dev/sda2
UUID=43e974d7-82d9-43b1-b67b-5233b18f056e none            swap    sw
      0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0


devient

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# /dev/sda1
UUID=f0d9c48e-00c4-4225-ab21-1c5a42194bc8 /               ext4
async,noatime,discard,errors=remount-ro 0       1
# /dev/sda2
UUID=43e974d7-82d9-43b1-b67b-5233b18f056e none            swap    sw
      0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0


Ensuite les commandes de TRIM sont directement passées au contrôleur du
SSD par le kernel, de façon entièrement transparente.


    Input/Output Scheduling


Ce mécanisme de réarrangement des IOCTL a pour objet d'optimiser les
commandes I/O vers le disque dur ATA/SATA en prenant en compte la nature
du disque dur en question et certaines contraintes en découlant. Il y a
trois différentes options : cfq, noop et deadline. Par défaut dans
Ubuntu, l'option "cfq" est utilisée car elle convient bien aux disques
durs mécaniques, en réorganisant la queue des commandes I/O en fonction
des temps de rotation des plateaux et des délais de "seek" des têtes.
Vous pouvez vérifier quel I/O Scheduler est utilisé par votre système
dans un terminal comme ceci :

cat /sys/block/sda/queue/scheduler

L'option la meilleure, celle qui optimise les I/O pour la rapidité des
temps d'accès des SSD est "deadline". Heureusement, il existe une
manière simple de déclarer cette option "deadline" de façon permanente
en la passant directement dans les paramètres donnés au kernel lors du
démarrage.

Pour grub2 (depuis Ubuntu 9.10)
Il faut modifier le fichier /etc/default/grub avec les droits
d'administrateur et rajouter "elevator=deadline" à la ligne d'options:

GRUB_CMDLINE_LINUX_DEFAULT="elevator=deadline quiet splash"
</extraits>

    Je rajouterai ceci:
- avoir un /home à part sur un disque à plateau
- y sauver aussi le /var , à cause des logs et des différents "caches"
de l'OS (par exemple pour Debian : /var/cache/apt/
- le /tmp dans un tmpfs
- seul reste le /root et le /etc comme étant des répertoires où le
système peut régulièrement modifier des fichiers (hors, bien sûr, mise à
jour de l'OS)
- garder un SSD pas trop plein, afin que le mécanisme de répartition de
l'usure des blocs puisse fonctionner
- pour le SWAP, une bonne idée est de le désactiver (vm.swappiness=0),
mais de garder sa partition afin que l'OS puisse s'en servir lors des
hibernations. Le temps de sortie d'hibernation sera alors très réduit
- pour l'alignement des partitions, le lien Ubuntu est assez clair


    En tout cas, le résultat est bluffant : Temps de boot fantastiquement
ridicule, de même que les entrée/sortie d'hibernation.


    Cordialement,


                        Olivier
-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
       /   / \  / \   \   Web:  http://olivieraj.free.fr/
      /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!