====== Tout sur les SSD ====== ===== Sites de référence ===== * [[http://forum.hardware.fr/hfr/OSAlternatifs/Hardware-2/recensement-optimisation-conseils-sujet_69473_1.htm|Les SSD sous Linux]]. ===== 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. * [[http://manurevah.com/blah/fr/pages/kubuntu-sur--acer-aspire-one]] 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 ====== * [[https://wiki.archlinux.org/index.php/Acer_Aspire_One|ArchLinux - page de l'Acer Aspire One]]