Différences
Ci-dessous, les différences entre deux révisions de la page.
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:38] james ajout warning taille RAM |
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) | ||
Ligne 86: | Ligne 101: | ||
<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> | <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 ca a la main a chaque fois ? ;-) | + | Vous n'avez pas envie de taper ça a la main a chaque fois ? ;-)\\ |
Je vous comprends : | 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. | + | * 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> | 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 | ||
Ligne 195: | Ligne 211: | ||
</code> | </code> | ||
- | Il faut ensuite faire exécuter automatiquement ce script au demarrage et a l'arrêt de la machine :<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> | 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 a 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 214: | 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. |