Skip to content

Retarder le Swap

18 décembre 2010

Afin de contrôler la manière dont le kernel gère la swap, il existe le paramètre swappiness.
Ce paramètre contrôle la tendance qu’aura le kernel a délesté des processus hors de la RAM vers la SWAP. le fait de swapper ralentit énormément les processus, car les vitesses d’accès aux disques durs sont beaucoup plus lent que les vitesses d’accès à la RAM.

La swappiness peut avoir une valeur comprise entre 0 et 100. A 100, le kernel swappera dès que possible. A 0 le kernel ne swappera jamais.
Il peut être dangereux de ne pas swapper s’il est possible de remplir sa mémoire vive. Par contre swapper continuellement ralentit les processus. D’expérience, j’ai vu certains de mes processus être 20 fois plus lents à cause de la SWAP.

Par défaut dans Ubuntu, la valeur de la swappiness est de 60. C’est une valeur tout à fait raisonnable. Si vous connaissez bien votre gestion de la mémoire, je vous laisse juger de la valeur idéale. Par contre, si vous êtes un utilisateur qui ne remplit jamais sa RAM, il faut réduire cette valeur. Chez moi, j’ai 2 Go de RAM, je sais que je ne dépasse jamais les 1.6 Go d’utilisé. J’ai donc descendu la valeur à 15. Je ne swapperais que si je dépasse les 1.7 Go d’utilisation.

Pour vérifier votre valeur de la swappiness

more /proc/sys/vm/swappiness

Pour changer temporairement sa valeur, on revient au défaut à chaque redémarrage.

sudo sysctl vm.swappiness=15

Pour rendre le changement permanent:

sudo gedit /etc/sysctl.conf

On cherche vm.swappiness dans le fichier et le modifie, s’il n’existe pas, ajoutez le.

vm.swappiness=15

On sauvegarde et la valeur sera effective au redémarrage suivant.

En passant, pour accélérer le boot, j’ai fait ça aussi :

sudo gedit /etc/init.d/rc

Et j’ai remplacé CONCURRENCY=none par CONCURRENCY=shell (apparemment obsolète mettre startpar). Ça n’a rien à voir avec la SWAP et la différence est dure à voir.

3 commentaires leave one →
  1. bochecha permalink
    18 décembre 2010 14 h 12 mi

    Après avoir modifié sysctl.conf, tu peux utiliser la commande suivante pour qu’ils soient pris en compte sans rebooter :
    # systcl -p

    Par contre :
    > « J’ai donc descendu la valeur à 15. Je ne swapperais que si je dépasse les 1.7 Go d’utilisation. »

    Comment tu calcules ça ? C’est aussi bête que « swappiness=15 » => « on swappe quand il reste moins de 15% de libre » ?

    • 18 décembre 2010 14 h 15 mi

      Exactement, on swappe quand il reste 15% de RAM libre.

      Merci pour l’info de plus.

  2. lann permalink
    18 décembre 2010 17 h 17 mi

    J’ai vu ça dans le script /etc/init.d/rc

    #
    # Start script or program.
    #
    case « $CONCURRENCY » in
    startpar|shell) # shell is obsolete

    if faudrait plutôt mettre startpar maintenant non ?

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :