Outils pour utilisateurs

Outils du site


technique:ssd:start

Tout sur les SSD

Sites de référence

Conseils et astuces pour optimiser son SSD

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

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.

Désactiver le logging

La plupart des dæmons logguent leurs activités. Or il est finalement assez rare d'aller consulter ces fichiers de log, car tant que la machine fonctionne correctement, il n'y a pas de raison de les lire pour le plaisir. Du coup, on peut tout simplement désactiver le dæmon syslog, démarré par le système au boot.

Sous Ubuntu, ça se passe dans /etc/init/rsyslogd, du moins en juillet 2011 ;-).

Sous Arch, on pourra préfixer le démon syslog-ng d'un point d'exclamation pour en empêcher le démarrage.

DAEMONS=(!syslog-ng hal cpufreq !network wicd netfs crond mpd @kdm)

Comme pour le swap, il est préférable de désactiver le lancement du démon plutôt que de le supprimer purement et simplement, son utilisation pouvant être nécessaire en cas de problème.

Modifier les paramètres de journalisation

Par défaut, une partition en ext3 ou ext4 journalise non seulement les opérations d'écriture (ctime, l'heure de création, et mtime, l'heure de la dernière modification) mais également les opérations de lecture (atime l'heure du dernier accès), ce qui engendre une écriture à chaque lecture. Dans le cas d'un SSD, c'est particulièrement problématique si on souhaite économiser la durée de vie de ce dernier. C'est pourquoi, on peut désactiver la journalisation de lecture lors du montage des partitions, dans le fichier /etc/fstab en ajoutant le paramètre noatime pour chacune des partitions ext3 ou ext4 hébergée sur le SSD :

UUID=db12430a-c622-4469-be4b-db24acb18922 / ext4 defaults,noatime 0 1

Placer le dossier temporaire en RamDisk

Afin de limiter les accès au SSD et ainsi éviter les lectures/écritures inutiles, il est intéressant de placer le dossier temporaire en RAM plutôt que sur le disque dur. En plus d'accéler quelques traitements, cette méthode à également l'avantage de vider ce dossier à chaque boot. Pour ce faire, dans /etc/fstab, on ajoutera la ligne suivante :

none /tmp tmpfs defaults,nosuid,nodev,noexec 0 0

Il peut également être intéressant, pour ceux qui laissent leur machine allumée 24h/24, de 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

Placer la partie "vivante" de FireFox en RamDisk

Cette astuce fonctionne indépendamment de la précédente, mais mise en place conjointement, elle se complètent parfaitement. Il s'agit ici de limiter les accès au SSD par FireFox, sans pour autant perdre tout son profil à chaque boot. Ainsi, on aura besoin de rsync pour réaliser les synchronisation de données. Avec FireFox fermé, on commence par dupliquer .mozilla dans un second dossier qui servira de sauvegarde lorsque la machine sera éteinte et de source de restauration lorsque la machine sera allumée :

cp -r .mozilla .mozilla_ref

On monte en RamDisk le répertoire du profil FireFox :

none      /home/kortex/.mozilla         tmpfs           defaults,uid=1000,gid=100,mode=750     0 0

Ou on remplacera dans le chemin kortex par le nom de votre utilisateur, et où on s'assurera que les valeurs de uid et gid correspondent à celle de l'utilisateur et de son groupe principal. Ensuite, dans les scripts s'exécutant au démarrage et à l'extinction de la machine, on synchronise le répertoire de référence (.mozilla_ref) et le répertoire normal (.mozilla). A l'allumage de la machine :

rsync -a /home/kortex/.mozilla_ref/ /home/kortex/.mozilla/

À l'extinction de la machine :

rsync -a /home/kortex/.mozilla/ /home/kortex/.mozilla_ref/

Dans mon cas, sous Arch, les fichiers à modifier sont /etc/rc.local et /etc/rc.local.shutdown.

Aspire One

L'aspire One A110 est une petite machine très sympathique qui permet de faire des tas de très belles choses.

Il y est dit notamment :

  • choisir “ext2”, j'ai cru comprendre que ce fs ne tient pas un journal intime aussi intense que d'autres
  • pour la swap.. perso, j'ai fini par virer la swap mais autrement, faites comme vous voulez

NOTE concernant le “disk”: la vitesse de lecture est correcte mais en revanche l'écriture est d'une lenteur hallucinante, et donc ça fait ramer le pc a un point qui frôle l'insupportable .. donc le but ici sera d'éviter autant que possible l'écriture sur le disk (j'ai cru comprendre que j'avais le “SSD lent” je ne sais pas s'il y a des séries avec des SSD plus rapide.. selon cette page http://www.blogeee.net/codex/index.php?title=Acer_Aspire_One ou il y a beaucoup de specs, j'aurais la version rapide.). SI t'as moyen d'ajouter de la RAM fait le, perso je tourne avec 512Mo pour l'instant 1024Mo et pas de swap

pour connaitre le model du SSD : root@hal:/home/manu# hdparm -i /dev/sda

optimisations générales

un tutoriel intéressant m'as indiqué quelques tuyaux sympa.. dans /etc/rc.local ajoute le suivant (avant la ligne exit 0).

# SP: save the SSD
sysctl -w vm.swappiness=1
# Strongly discourage swapping
sysctl -w vm.vfs_cache_pressure=50
# Don't shrink the inode cache aggressively
# SP: depuis rc.last.ctrl sur Linpus
echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
echo 20 > /proc/sys/vm/dirty_ratio
echo 10 > /proc/sys/vm/dirty_background_ratio
[ -L /sys/bus/usb/devices/1-5/power/level ] && echo auto > /sys/bus/usb/devices/1-5/power/level
# SP: accélère l'hibernation et réduire la taille de l'image
echo 0 > /sys/power/image_size
# SP: d'après Linpus pour le lecteur multicarte (a droite)
## ça ne fonctionne pas totalement pour l'instant (il faut que la carte y soit avant le boot
# pour le scripte jmb38x_d3e.sh
setpci -d 197b:2381 AE=47
nice /usr/local/sbin/jmb38x_d3e.sh &
# SP: un autre truc de Linpus
# Les touches de fonction
/usr/bin/setkeycodes e025 130
/usr/bin/setkeycodes e026 131
/usr/bin/setkeycodes e027 132
/usr/bin/setkeycodes e029 133
/usr/bin/setkeycodes e071 134
/usr/bin/setkeycodes e072 135
# L'interrupteur wifi
/usr/bin/setkeycodes e055 159
/usr/bin/setkeycodes e056 158
# /SP

Optimisations X-Window

Créer un ~/.Xmodmap :

keycode 160=XF86AudioMute
keycode 174=XF86AudioLowerVolume
keycode 176=XF86AudioRaiseVolume
keycode 223=XF86Standby
keycode 239=XF86KbdBrightnessDown
keycode 123=XF86KbdBrightnessUp
keycode 210=XF86Display

puis ajouter :

xmodmap ~/.Xmodmap

dans ~/.xinitrc.

/boot/grub/menu.lst

car il y a un souci de gestion de temps, on peut économiser quelques 0.00000000032 secondes au boot, et chaque picosecond compte, alors, déjà on va modifier les options par défaut pour que ce soit appliqué lors des mise à jour du noyau, ensuite on va le foutre dans la ligne du noyau actuel. Trouve donc la ligne:

# defoptions=quiet splash

et fais-la devenir ainsi:

# defoptions=elevator=noop clocksource=hpet quiet splash

ensuite dans la section kernel, pour chaque noyau que tu veux utiliser ajoute l'option clocksource=hpet et elevator=noop comme suitde:

kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=d73def36-8ef6-4da3-a8cf-d899fda3834a ro quiet splash

vers

kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=d73def36-8ef6-4da3-a8cf-d899fda3834a ro clocksource=hpet quiet splash elevator=noop

pour plus d'info sur le noop va voir (english) http://lonesysadmin.net/2008/02/21/elevatornoop/ plus plus plus d'optimisations

on peut aussi modifier /etc/sysctl.conf et rajouter a la fin:

# minimise l'utilisation de la swap
vm.swappiness = 1
# ne pas être trop agressif avec la cache inode
vm.vfs_cache_pressure = 50

Références

technique/ssd/start.txt · Dernière modification : 2020/04/06 15:38 de 127.0.0.1