Re: sync et FS journalise

Top Page

Reply to this message
Author: malet jean-luc alias cityhunter
Date:  
To: Olivier Allard-Jacquin
CC: guilde
Subject: Re: sync et FS journalise
Olivier Allard-Jacquin a écrit:

>    Bonsoir,

>
>malet jean-luc alias cityhunter a écrit :
>
>
>>par exemple mon système est configuré pour lire/écrire les
>>données sur le disque que toutes les 10 min (sauf si beaucoup de données
>>à flusher...) ce qui signifie que mon disque ne sera solicité QUELQUE
>>SOIT l'operation (enfin persque)(fermeture, écriure...) que toutes les
>>10mins....
>>
>>
>
>    Tu fais comment pour forcer le kernel à ne pas écrire sur le filesystem ?

>
>    Personnellement, j'utilise ceci (pour de l'ext3) :

>
>[olivier@phoenix ~]$ cat /etc/fstab
>[...]
>/dev/hda2 /mnt/periph ext3 defaults,async,commit=600,noatime 0 1
>                                    ^^^^^ ^^^^^^^^^^ ^^^^^^^

>
>mais je ne suis pas persuadé de l'efficacité.
>
>    Merci d'avance pour la réponse,

>
>                        Olivier

>
>

il y a plusieurs options dans /proc/sys/vm
cherche dans les docs du kernel la string ¨laptop_mode¨

        #2.6 kernels
                #laptop_mode is the time in second to wait when a write 
is performed to group
                #several write in one call
                        echo 5                                  > 
/proc/sys/vm/laptop_mode
                        echo "$AGE"                             > 
/proc/sys/vm/dirty_writeback_centisecs
                        echo "$AGE"                             > 
/proc/sys/vm/dirty_expire_centisecs
                        echo "$DIRTY_RATIO"                     > 
/proc/sys/vm/dirty_ratio
                        echo "$DIRTY_BACKGROUND_RATIO"          > 
/proc/sys/vm/dirty_background_ratio



après faut jouer avec blockdev et fixer le read-ahead du disque.....

celui qui joue le plus c'est laptop_mode : dans les kernel 2.6 c'est le
nombre de secondes à attendre après un write avant que l'opération soit
réellement effectué.... ce qui signifie que pendant cet interval de
temps le kernel enqueue les demandes de write(), les réorganisent
etc..... et effectue tout en un instant.... cela a pour avantage de
faire des gros transferts dma.... mais cela nuit à la réactivité du
système (si par hazard une demande de read est effectuée lors du flush réel)
après faut fixer correctement le read-ahead du disque avec blockdev....
perso j'ai 1G de ram, j'ai mis un read-ahead de 50Mo (tous les fichiers
plus petits que 50Mo sont lu entièrement et mis en cache disque) et un
laptop_mode de 60s
le dirty ratio est de 60% (faut modification de 60% de la mémoire pour
forcer un flush....)
il y a une dernière option /proc/sys/vm/swappiness qui fixe le
comportement du kernel vis à vis de la swap : plus c'est grand et plus
le swap sera utilisé (ie swappines > 100 signifie ¨application non
utilsée => swap automatiquement, swappines de 20 signifie par exemple
¨pas ou peu utiliser le swap¨)

après faut tunner le fs : pour du xfs
                  echo $AGE > /proc/sys/fs/xfs/age_buffer_centisecs
                  echo $AGE > /proc/sys/fs/xfs/xfssyncd_centisecs
                  echo 3000 > /proc/sys/fs/xfs/xfsbufd_centisecs


async ne joue pas dans ce cas je crois..... et pourquoi tu met le dump à 1?