après le bon topic réalisé par LdeVinci pour Windows 7
voici celui pour GNU/Linux (Ubuntu)
Je ne vais pas remettre les spécificité propre aux SSD ça déjà été fait, au mieux je ne peux que vous conseiller de lire les 2 sujets réalisé par BHMag :
Test Le point sur les SSD
Test Optimiser son SSD
par contre l'utilisation d'un SSD avec une distribution GNU/Linux est un peu particulière, et pour certains elle pourra paraitre plus délicate à maitriser.
d'abord il faut quand même prendre en compte, ou tout du moins connaitre trois points techniques non évoqués jusqu'à présent liés aux SSD.
Termes techniques liés aux SSD
- Alignement des partitions
- Wear levelling
- Garbage collector
Avantage : on récupère les performances d'origine du SSD en écriture séquentielle ou presque.
Inconvénient : on génère de nombreuses écritures dans les puces mémoire, ce qui a tendance à amoindrir la durée de vie du SSD, et le disque travaillant en interne, il ne libère pas les pages de Flash comme le fait le TRIM, ce qui fait que cela n'est efficace que pour les écritures séquentielles, sans améliorer les écritures aléatoires. Tous les SSD semblent utiliser ce procédé, de manière plus ou moins agressive, et ce à la volée ou en tâche de fond (on parle alors de background garbage collection) en fonction de l'objectif du fabricant.
Alignement des partitions
- C'est quoi l'alignement ?
- Vérification de l'alignement du SSD?
Si vous voulez en être sûr, tapez
sudo fdisk -lu /dev/sda
vous devriez obtenir quelques chose comme ceci :
Disque /dev/sdd: 64.0 Go, 64023257088 octets 255 têtes, 63 secteurs/piste, 7783 cylindres, total 125045424 secteurs Unités = secteurs de 1 * 512 = 512 octets Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identifiant de disque : 0x00055066 Périphérique Amorce Début Fin Blocs Id Système /dev/sdd1 * 2048 40038399 20018176 83 Linux /dev/sdd2 40040446 125044735 42502145 5 Etendue /dev/sdd5 40040448 125044735 42502144 83 Linux
- Formatage manuel du SSD (usage avancé)
Ne suivez cette méthode que si vous êtes sûr de vous et que si vous savez résoudre des problèmes pouvant arriver au cours d'un formatage !
- Formatage automatique du SSD (de base)
C'est ce que j'ai choisis pour mon cas, sur la base d'un SSD CORSAIR P64 (64Go) pour lequel j'ai mis à jour le firmware afin qu'il prenne en compte le TRIM (arf! encore un terme barbare)
pour bien comprendre , il faut savoir que j'ai partitionner mon SSD comme ceci :
sdd1 : /
sdd2 : partition étendue (là j'aurais du mettre en primaire, mais bon c'est pas grave en soit)
sdd5 : /home
bien évidement vous aurez constatez qu'il n'y a pas de partition swap
L'alignement obtenu :
Citation
Disque /dev/sdd: 64.0 Go, 64023257088 octets
255 têtes, 63 secteurs/piste, 7783 cylindres, total 125045424 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x00055066
Périphérique Amorce Début Fin Blocs Id Système
/dev/sdd1 * 2048 40038399 20018176 83 Linux
/dev/sdd2 40040446 125044735 42502145 5 Etendue
/dev/sdd5 40040448 125044735 42502144 83 Linux
255 têtes, 63 secteurs/piste, 7783 cylindres, total 125045424 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x00055066
Périphérique Amorce Début Fin Blocs Id Système
/dev/sdd1 * 2048 40038399 20018176 83 Linux
/dev/sdd2 40040446 125044735 42502145 5 Etendue
/dev/sdd5 40040448 125044735 42502144 83 Linux
si j'avais pris la peine d'effectuer un alignement bien "carré", j'aurais du avoir ceci :
Citation
Périphérique Amorce Début Fin Blocs Id Système
/dev/sdd1 * 2048 40038399 20018176 83 Linux
/dev/sdd2 40038400 125044736 42503168 5 Etendue
/dev/sdd5 40040448 125044735 42502144 83 Linux
/dev/sdd1 * 2048 40038399 20018176 83 Linux
/dev/sdd2 40038400 125044736 42503168 5 Etendue
/dev/sdd5 40040448 125044735 42502144 83 Linux
résultat, il y a presque 1 Mo entre sdd1 et sdd2, soit 2047ko , on peut dire que je m'en sort pas trop mal.
Optimiser l'usage du SSD
il n'existent pas d'étude suffisamment claire quant à la durée de vie des mémoires SSD par rapport aux disques durs. les sections qui suivent vous explique comment minimiser les accès en écriture du SSD.
Les points 2 à 4 sont réservées aux PC ayant plus de 512 Mio de mémoire vive (RAM).
1 - Réduire la fréquence d'écriture des partitions
Utilisez l'option noatime pour éviter d'écrire sur le disque la date du dernier accès en lecture lorsqu'il n'y a pas d'écriture. De même avec nodiratime pour les dossiers.
note : il existe le même type de réglage sur Windows pour les partitions NTFS
Vérifier que vos partitions sont montées avec cette option en ouvrant le fichier /etc/fstab (avec les droits d'administration), dans lequel vous trouvez des lignes telles que :
UUID=57480a3f-e7db-4a5e-9fca-7df45f5a7d9d / ext4 defaults,noatime,nodiratime,errors=remount-ro 0 1
Si noatime n'est pas indiqué après defaults , vous pouvez le rajouter (séparé par une virgule).
2 - 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
on peut vérifier dans une fenêtre terminal que le "tmpfs" est bien présent avec la commande :
df
note: la commande fournis sur Forum HardWare.fr : Discussions Informatiques & Généralistes ne fonctionne pas chez moi.
Pour ceux qui laissent leur machine allumée 24h/24, une astuce consiste à placer une règle cron qui vide les fichiers temporaires à intervalle régulier, afin de ne pas encombrer la mémoire. La commande à mettre dans la tâche cron est la suivante :
find /tmp -type f -mmin +1440 -delete > /dev/null
3 - Le Swap
Les SSD n'aiment pas le SWAP (partition d'échange qui permet de délester l'utilisation de la mémoire, mais oblige à de multiple lecture/écriture sur le périphérique)
Il est possible de ne pas créer de partition SWAP durant l'installation d'Ubuntu en définissant les partitions manuellement (mode avancé). Cela permet de forcer l'utilisation de la mémoire vive et d'économiser l'espace qu'aurait pris cette partition sur le disque dur !
- Supprimer le 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
Cette ligne indique à Ubuntu de n'utiliser la swap qu'en dernier recours quand votre RAM est "full" ! (" 1 " indique de l'utiliser seulement lorsqu'il ne reste que 1 % de disponible en RAM, " 2" quand il reste 2 %, etc.).
4 - Modifier le cache de Firefox
Pour place le cache de Firefox dans le répertoire /tmp/firefox (RAM). Taper about:config dans firefox et créer une nouvelle chaîne de caractères que vous nommerez browser.cache.disk.parent_directory et saisir /tmp/firefox.Si vous avez une connexion suffisamment rapide, vous pouvez désactiver complètement le cache persistant en modifiant l'option browser.cache.disk.enable avec la valeur false.
5 - Le Trimming.
Comme il a déjà été dit, les disques SSD voient leurs performances diminuer à mesure que les cellules (bloc mémoire) se remplissent (même partiellement) et cela induit des performances en écriture de plus en plus médiocres à mesure que le SSD vieillit et qu'il y a de moins en moins de cellules vierges disponibles.
Ce phénomène est dû à la manière dont le SSD fonctionne en écriture au niveau des cellules de mémoire flash : si une cellule est vierge, le contrôleur peut directement écrire dedans - par contre si elle contient déjà des données (même 1 seul bloc d'allocation de 4k alors que la cellule contient 1024k au total), le contrôleur doit lire la cellule + la remettre à zéro + écrire les données.
Une opération beaucoup plus lente. Le Trimming a pour objet d'indiquer au contrôleur du SSD lorsque des blocs d'allocation se libèrent suite à l'effacement de fichiers par le filesystem (ce qu'il ne peut pas savoir directement à priori); et donc que ces plages libérées sont à nouveau disponibles pour écrire dessus - charge étant au contrôleur de remettre à zéro les cellules qui peuvent l'être et ainsi augmenter les cellules vierges disponibles. Bien entendu, il faut que le SSD supporte la commande TRIM afin de pouvoir réaliser cette opération (ce qui est le cas pour la plupart des SSD récent). Vous pouvez vérifier cela en mode terminal :
sudo hdparm -I /dev/sda Cette commande permet de lister tous les paramètres et fonctionnalités du SSD. Dans le paragraphe "Commands/features" une ligne doit clairement indiquer le support TRIM. Il existe plusieurs mécanismes de Trimming des SSD :
- Trimming à la volée
- 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
# /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.
Optimiser la vitesse du SSD
- Input/Output Scheduling
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"
puis mettre à jour grub pour que les modifications soient passées à grub.cfg :
sudo update-grub
Sources originales :
- ssd_solid_state_drive - Documentation Ubuntu Francophone
- Les SSD sous Linux : recensement, optimisation, conseils
- le sujet que j'ai réalisé sur forum Malekal
Ce message a été modifié par Wullfk - 04 avril 2011 - 05:52 .

Aide
Commencer un sujet
Ajouter une réponse




Multi-citation







