Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
sysadmin:tuning_debian_cf [2010/11/23 10:09]
james nouveau script init
sysadmin:tuning_debian_cf [2019/08/20 14:15] (Version actuelle)
james [Placer les fichiers temporaires en mémoire vive]
Ligne 1: Ligne 1:
 +{{tag>​optimisation disque SSD CF partition partition_alignement tmpfs}}
 ====== Optimisation d'​installation debian sur support CF / clef USB ====== ====== Optimisation d'​installation debian sur support CF / clef USB ======
  
 Conseils pour installer une Debian sur un support ayant un nombre d'​ecriture limité (carte CompactFlash,​ SD, clef USB, ...) Conseils pour installer une Debian sur un support ayant un nombre d'​ecriture limité (carte CompactFlash,​ SD, clef USB, ...)
  
-Je n'ai pour l'​instant pa expérimenté la totalité des astuces decrites ici, faute d'​avoir craqué pour le mini PC qui servira ​de mediacenter+La plupart ​de ces manipulations ont été testées sur : 
 +  * ubuntu 10.04 installée sur le "SSD du pauvre"​ OCZ throttle (clef eSATA branchée en SATA) , utilisation:​ médiacenter 
 +  * ubuntu 10.10 installée sur une Clef USB Corsair Voyager 8 Go , utilisation : desktop
  
 +===== Aligner les partitions sur les blocs physiques =====
  
-===== Utiliser un systeme ​de fichier non journalisé =====+Il faut aligner les partitions sur les blocks physiques des SSD : l'​ecriture d'un bloc sur le filesystem ne se fera donc pas "a cheval"​ sur 2 blocs physiques et ne nécessitera donc pas d'​ecrire 2 blocs, mais bel et bien un seul, d'ou un gain substantiel aussi bien en temps d'​ecriture (/2) mais aussi pour la durée de vie des blocks. 
 + 
 +En général les SSD ont des blocs physiques de 512k ou 2048k (a vérifier pour votre modele exact de SSD). 
 + 
 +Un alignement a 2048k étant aussi aligné pour 512k, l'​alignement 2048k est a privilégier si vous ne connaissez pas la taille exacte de blocs de votre SSD. 
 + 
 +Cette création de partitions alignées ne sera pas décrite dans le détail ici, voir par exemple cette doc en anglais : http://​blog.nuclex-games.com/​2009/​12/​aligning-an-ssd-on-linux/​ 
 + 
 +===== Utiliser un système ​de fichier non journalisé =====
  
 Les systèmes de fichier journalisés (ext3 ou ext4 par exemple) écrivent continuellement un fichier journal des modifications sur le SSD, ce qui peut l'user prématurément. Les systèmes de fichier journalisés (ext3 ou ext4 par exemple) écrivent continuellement un fichier journal des modifications sur le SSD, ce qui peut l'user prématurément.
  
-En utilisant un système de fichiers non journalisé on évite l'ecriture ​du journal sur le support : le systeme ​de fichier ext2 sera utilisé sur le SSD pour en maximiser la durée de vie.+En utilisant un système de fichiers non journalisé on évite l'écriture ​du journal sur le support : le système ​de fichier ext2 sera utilisé sur le SSD pour en maximiser la durée de vie.
  
 ===== Diminuer la fréquence d'​écriture des partitions ===== ===== Diminuer la fréquence d'​écriture des partitions =====
  
  
-Utiliser l'​option relatime pour éviter d'​écrire sur le disque la date du dernier accès en lecture lorsqu'​il n'y a pas d'​écriture. Il s'agit du meilleur compromis entre cohérence du système de fichier et minimisation des écritures sur le disque.+Utiliser l'​option ​//relatime// pour éviter d'​écrire sur le disque la date du dernier accès en lecture lorsqu'​il n'y a pas d'​écriture. Il s'agit du meilleur compromis entre cohérence du système de fichier et minimisation des écritures sur le disque.
  
 exemple de fstab correspondant pour le /: exemple de fstab correspondant pour le /:
Ligne 23: Ligne 35:
 ===== Placer les fichiers temporaires en mémoire vive ===== ===== Placer les fichiers temporaires en mémoire vive =====
  
-Pour faire ca il faut disposer d'un peu de RAM, mais vue le prix actuel, ca n'est pas un probleme+Pour faire ca il faut disposer d'un peu de RAM, mais vue le prix actuel, ca n'est pas un problème.
  
-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 ainsi possible de les placer dans la mémoire vive (qui est vidée à l'​arrêt de l'​ordinateur) au lieu de les avoir sur la CF (cela peut ralentir le demarrage ​de certains logiciels, qui doivent recréer leur fichiers temporaires a chaque reboot, mais who cares)+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 ainsi possible de les placer dans la mémoire vive (qui est vidée à l'​arrêt de l'​ordinateur) au lieu de les avoir sur la CF (cela peut ralentir le démarrage ​de certains logiciels, qui doivent recréer leur fichiers temporaires a chaque reboot, mais who cares)
  
 Pour mettre les fichier temporaires en mémoire vive, voici un exemple de fichier /etc/fstab : Pour mettre les fichier temporaires en mémoire vive, voici un exemple de fichier /etc/fstab :
Ligne 34: Ligne 46:
 </​code>​ </​code>​
  
 +<​note>​ on pourrait utiliser quelques options de montage bien choisies pour /tmp comme par exemple :<​code>​tmpfs /tmp tmpfs size=25%,​mode=1777,​nodev,​nosuid,​noexec 0 0</​code></​note>​
 Les logs sur un mediacenter,​ on s'en fout un peu , non ? ;-) Les logs sur un mediacenter,​ on s'en fout un peu , non ? ;-)
 On pourrait donc rajouter le /var/log dans la liste des tmpfs On pourrait donc rajouter le /var/log dans la liste des tmpfs
  
-<note important>​Il faut cependant recréer les sous répetoires ​nécessaires lors de chaque reboot, comme par exemple /​var/​cache/​apt/​archives/​partial : on peut placer ces commandes dans un script appelé au démarrage</​note>​+<note important>​Il faut cependant recréer les sous répertoires ​nécessaires lors de chaque reboot, comme par exemple /​var/​cache/​apt/​archives/​partial : on peut placer ces commandes dans un script appelé au démarrage</​note>​
 <note important>​Le répertoire /​var/​cache/​apt/​archives/​partial/​ mentionné ci dessous est maintenant (depuis la ubuntu 10.10 et contrairement la 10.04) recréé automatiquement et ne nécessite donc plus la manipulation décrite</​note>​ <note important>​Le répertoire /​var/​cache/​apt/​archives/​partial/​ mentionné ci dessous est maintenant (depuis la ubuntu 10.10 et contrairement la 10.04) recréé automatiquement et ne nécessite donc plus la manipulation décrite</​note>​
 +
 +==== Script de recréation de répertoires nécessaires lors du boot ====
  
   * pour créer automatiquement certains répertoires au reboot : <​code>​   * pour créer automatiquement certains répertoires au reboot : <​code>​
Ligne 62: Ligne 77:
 ===== Placer les profils utilisateur des logiciels en RAM ===== ===== Placer les profils utilisateur des logiciels en RAM =====
  
-Les fichiers temporaire sont tres souvent lus/ecrits ​par les différents logiciels (firefox ​par exemple) dans le profil utilisateur. Il s'agit ici de limiter les accès au SSD par FireFox, sans pour autant perdre tout son profil à chaque boot. +Les fichiers temporaire sont très souvent lus/écrits ​par les différents logiciels (FireFox ​par exemple) dans le profil utilisateur. Il s'agit ici de limiter les accès au SSD par FireFox, sans pour autant perdre tout son profil à chaque boot. 
  
-Le principe est donc d'​utiliser la RAM (ramfs) pour le profil ​firefox ​pendant son fontionnement ​:les lectures/ecritures ​se feront alors dans la RAM et non pas sur le SSD.+Le principe est donc d'​utiliser ​une partie de la RAM comme répertoire de stockage du profil ​(appelé ​ramfs ou encore tmpfs) pour le profil ​FireFox ​pendant son fonctionnement ​:les lectures/écritures ​se feront alors dans la RAM et non pas sur le SSD.
  
 Pour ne pas perdre son profil a chaque fois il suffira de sauvegarder ce profil sur le SSD a chaque arrêt de la machine (et de recopier cette sauvegarde en RAM lors du démarrage) Pour ne pas perdre son profil a chaque fois il suffira de sauvegarder ce profil sur le SSD a chaque arrêt de la machine (et de recopier cette sauvegarde en RAM lors du démarrage)
  
-  * Création initiale (firefox non lancé) :<​code>​cp -r /home/mediacenter/.mozilla /home/mediacenter/​.mozilla_ref</​code>​+  * Création initiale (firefox non lancé) :<​code>​cp -r /home/jerome/.mozilla /home/jerome/​.mozilla_ref</​code>​
  
   * On monte en RamDisk le répertoire du profil FireFox : extrait du fstab :<​code>​   * On monte en RamDisk le répertoire du profil FireFox : extrait du fstab :<​code>​
Ligne 84: Ligne 99:
  
 <​note>​Ce principe peut bien sur être étendu a tout logiciel utilisant de manière intense les fichiers du profil utilisateur</​note>​ <​note>​Ce principe peut bien sur être étendu a tout logiciel utilisant de manière intense les fichiers du profil utilisateur</​note>​
 +<note important>​attention toutefois a vous assurez que vous aurez assez de RAM libre pour continuer a utiliser votre ordinateur une fois le(s) profil(s) chargé(s) en RAM : en général un profil Thunderbird est tres gros ( ~700 Mo) </​note>​
 +
 +Vous n'avez pas envie de taper ça a la main a chaque fois ? ;-)\\
 +Je vous comprends :
 +==== Script de sauvegarde/​restauration de profils ====
  
-Voici un exemple de script ​placer dans /​etc/​init.d/​ qui réalise ces opérations ​(ne pas oublier de le faire exécuter ​au démarrage/​arrêt ​de la machine :<​code>​+  * Voici un exemple de script ​à placer dans /​etc/​init.d/​ qui réalise ces opérations. \\ 
 +Le --start est à appeler ​au demarrage ​de la machine ​(SSD -> tmpfs) et le --stop a l'​arrêt pour sauvegarder le profil (tmpfs -> SSD) :<​code>​
 #! /bin/sh #! /bin/sh
 # /​etc/​init.d/​syncProfiles - synchroniser les profils utilisateurs entre la RAM (tmpfs) et le SSD # /​etc/​init.d/​syncProfiles - synchroniser les profils utilisateurs entre la RAM (tmpfs) et le SSD
Ligne 98: Ligne 119:
 ### END INIT INFO ### END INIT INFO
  
-# utilisateurs par defaut lorsque ce script est appelé par root - sinon synchonise ​pour l'​utilisateur courant +# utilisateurs par defaut lorsque ce script est appelé par root - sinon synchronise ​pour l'​utilisateur courant 
-DEFAULT_USERS="​jerome ​coin"+DEFAULT_USERS="​jerome ​fred"
  
 # liste profils a sauvegarder (les profils de sauvegarde seront suffixés en "​_ref"​) séparés par des espaces # liste profils a sauvegarder (les profils de sauvegarde seront suffixés en "​_ref"​) séparés par des espaces
Ligne 190: Ligne 211:
  
 </​code>​ </​code>​
 +  * Il faut ensuite faire exécuter automatiquement ce script au démarrage et a l'​arrêt de la machine :<​code>​
 +update-rc.d syncProfiles defaults</​code>​
  
 ===== Minimiser l'​usage de la partition swap ===== ===== Minimiser l'​usage de la partition swap =====
 +<​note>​non testé : je n'​utilise pas de swap sur ces machines </​note>​
  
-L'​utilisation d'une patrition/​fichier de swap est deconseillé ​sur une carte CF cause du grand nombre d'​écriture (sans tuning du moins)+L'​utilisation d'une patrition/​fichier de swap est déconseillé ​sur une carte CF à cause du grand nombre d'​écriture (sans tuning du moins)
  
-Si on veut utiliser une parition swap (notamment pour bénéficier de l'​hibernation),​ il faut en minimiser l'​usage en editant le fichier /​etc/​sysctl.conf : rajouter à la fin :+Si on veut tout de même utiliser une parition swap (notamment pour bénéficier de l'​hibernation),​ il faut en minimiser l'​usage en editant le fichier /​etc/​sysctl.conf : rajouter à la fin :
 <​code>​vm.swappiness=0</​code>​ <​code>​vm.swappiness=0</​code>​
  
  
 ===== Peut etre une idee en plus ===== ===== Peut etre une idee en plus =====
-Vu sur le net : a vérifier/​voir l'intéret+Vu sur le net : a vérifier/​voir l'intérêt
  
 "Je rajouterais juste peut-être un petit tuning de /​proc/​sys/​vm/​dirty_ratio et /​proc/​sys/​vm/​dirty_background_ratio qui indiquent avec quelle agressivité le kernel écrit sur le disque les fichiers en cache (RAM). Je tiens ça des différents scripts de laptop-mode-tools,​ qui est l'​utilitaire utilisé sur les portables pour améliorer l'​autonomie. Tu peux t'en inspirer car il essaye en général de minimiser les accès disque."​ "Je rajouterais juste peut-être un petit tuning de /​proc/​sys/​vm/​dirty_ratio et /​proc/​sys/​vm/​dirty_background_ratio qui indiquent avec quelle agressivité le kernel écrit sur le disque les fichiers en cache (RAM). Je tiens ça des différents scripts de laptop-mode-tools,​ qui est l'​utilitaire utilisé sur les portables pour améliorer l'​autonomie. Tu peux t'en inspirer car il essaye en général de minimiser les accès disque."​
Ligne 207: Ligne 231:
 Ajouter dans le fichier /​etc/​sysctl.conf :<​code>​ Ajouter dans le fichier /​etc/​sysctl.conf :<​code>​
 vm.dirty_writeback_centisecs=1500</​code>​ vm.dirty_writeback_centisecs=1500</​code>​
-Cela modifie la valeur de l'​intervalle (en centaines de millisecondes) entre les moments ou pdflush se réveille pour ecrire ​les changements sur le disque.+Cela modifie la valeur de l'​intervalle (en centaines de millisecondes) entre les moments ou pdflush se réveille pour écrire ​les éventuels ​changements sur le disque.
  
 On passe ainsi cette valeur à 15s au lieu des 5s par défaut. On passe ainsi cette valeur à 15s au lieu des 5s par défaut.
sysadmin/tuning_debian_cf.1290503342.txt.gz · Dernière modification: 2010/11/23 10:09 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0