Optimiser la gestion de la RAM et du Swap sous Linux

l’Almanet doLys Gnu/Linux – Open Source – Entreprises Forums L’almanet doLys Open Source Optimiser la gestion de la RAM et du Swap sous Linux

Ce sujet a 23 réponses, 2 participants et a été mis à jour par deobs deobs, il y a 3 semaines et 1 jour.

15 sujets de 1 à 15 (sur un total de 24)
  • Auteur
    Messages
  • #5611
    nam1962
    nam1962
    Admin bbPress

    Sous Linux, on peut optimiser la gestion de la RAM en gérant la swappiness.
    Pour vérifier votre réglage actuel :

    cat /proc/sys/vm/swappiness
    cat /proc/sys/vm/vfs_cache_pressure

    Si la swappiness est à 60 et le cache_pressure à 100, c’est un réglage pour serveur qui n’est pas optimal pour un ordinateur individuel (cf note en bas)

    Ces valeurs par défaut sont plus logiques pour un serveur que pour un ordi personnel.

    Après le réglage que je vous propose et que tout le monde devrait faire, vous constaterez que votre ordinateur sous Linux est plus rapide et vivace ! 🙂

    …n’oubliez pas, pour sélectionner chaque commande, le triple clic sur chaque ligne :

    echo vm.swappiness=5 | sudo tee /etc/sysctl.d/99-sysctl.conf
    echo vm.vfs_cache_pressure=50 | sudo tee -a /etc/sysctl.d/99-sysctl.conf
    sudo sysctl -p /etc/sysctl.d/99-sysctl.conf

    Si vous utilisez un SSD, il ne faut pas swapper dessus donc regardez ce post : https://dolys.fr/forums/topic/1327/ (même conseil si vous n’avez pas de partition swap).

    Explication : ces réglages allègent l’utilisation de la swap.

    Dans la configuration d’origine, sur Ubuntu et ses variantes par exemple, la swappiness est réglée à 60, ce qui veut dire que la swap peut-etre sollicitée dès 40% d’utilisation de la RAM.

    60 est utile pour un serveur, mais pas pour un ordinateur personnel (sur Manjaro, le réglage par défaut est… 10 !)

    Pour comprendre ce que cela fait, pour 4Go de RAM, vous risquez de voir la swap stocker des données sur le disque dur (beaucoup plus lent que la RAM) dès 1.7Go d’utilisation, ce qui est ballot !

    Avec ce tuto, votre ordi utilisera 95% de la RAM avant de penser à autre chose. Le cache pressure, lui sollicite plus le cache VFS, ce qui doit fluidifier l’utilisation des applications.

    Pour les curieux : Tales from Responsivenessland


    ? Un jeune site que j'aime bien, la ferrari du T-shirt  ...bio en plus : https://goudronblanc.com
    C'est notre mécène ! 🙂

    #5626
    deobs
    deobs
    Participant

    Salut Nam
    Merci pour ces tutos.
    je me demandais si la config du swappiness et du cache pressure est pas différente sur les systeme installés (et non mit a niveau) a partir de 17.4 du fait que c’est maintenant un fichier et non plus un partition swapp?
    la question me tourmente car le fichier README dans /etc/sysctl.d nous dit:

    End-users can use 60-*.conf
    and above, or use /etc/sysctl.conf directly, which overrides anything in
    this directory.

    /etc/sysctl.d/99-swappiness.conf n’est plus present d’origine bien qu’il continue de changer la valeur du swappiness
    Par contre la commande
    echo vm.vfs_cache_pressure=50 | sudo tee -a /etc/sysctl.d/99-swappiness.conf
    ne modifie pas la valeur dans /proc/sys/vm/vfs_cache_pressure qui elle reste a 100
    Ne devrait on pas utiliser /etc/sysctl.d/99-sysctl.conf ou mieux /etc/sysctl.conf afin d’ajouter ces paremetres ?

    ubuntu-gnome 17.04_64bits
    IdeaPad P500 touch

    #5628
    nam1962
    nam1962
    Admin bbPress

    Hello deobs !

    La question est intéressante, en lisant attentivement, je pense que la syntaxe reste valable : 99-swappiness.conf est bien >= 60-*.conf.

    Le nom du fichier fut créé par nany du forum Ubuntu qui m’a aidé sur ce sujet, maintenant un 70-macheproh.conf ferait aussi bien l’affaire : comme le dit la doc que tu cites, il faut + que 60 et * signifie “n’importe quel nom”.

    99-swappiness.conf n’existe pas dans les configs par défaut.

    Dans tous les cas, pour vérifier :

    cat /proc/sys/vm/swappiness

    Comme j’indique au début 😉


    ? Un jeune site que j'aime bien, la ferrari du T-shirt  ...bio en plus : https://goudronblanc.com
    C'est notre mécène ! 🙂

    #5629
    deobs
    deobs
    Participant

    merci pour la reponse
    concernant la valeur de /proc/sys/vm/vfs_cache_pressure, elle ne semble pas affectee par la commande
    echo vm.vfs_cache_pressure=50 | sudo tee -a /etc/sysctl.d/99-swappiness.conf
    car une fois la commande passee:

    deobs@IdeaPad:~$ cat /proc/sys/vm/vfs_cache_pressure
    100

    as tu une solution ? ou peut etre qu’il est envisageable d’editer /proc/sys/vm/vfs_cache_pressure, je ne sais pas.

    ubuntu-gnome 17.04_64bits
    IdeaPad P500 touch

    #5630
    nam1962
    nam1962
    Admin bbPress

    Déjà, passe un

    cat /etc/sysctl.d/99-swappiness.conf

    Pour voir si la commande a été écrite dans 99-swappiness.conf.
    et un

    sysctl -a | grep vm.vfs*

    Pour voir si elle est prise en compte (ma syntaxe est dégoutante, mais c’est la dernière valeur)
    N’oublie pas que les fichier supérieurs à 60-*.conf sont des override, c’est à dire qu’ils n’affectent pas le fichier d’origine, mais ont priorité sur lui.


    ? Un jeune site que j'aime bien, la ferrari du T-shirt  ...bio en plus : https://goudronblanc.com
    C'est notre mécène ! 🙂

    #5631
    deobs
    deobs
    Participant
    deobs@IdeaPad:~$ cat /etc/sysctl.d/99-swappiness.conf
    vm.swappiness=5
    vm.vfs_cache_pressure=50

    et

    deobs@IdeaPad:~$ sysctl -a | grep vm.vfs*
    sysctl: permission denied on key 'fs.protected_hardlinks'
    sysctl: permission denied on key 'fs.protected_symlinks'
    sysctl: permission denied on key 'kernel.cad_pid'
    sysctl: permission denied on key 'kernel.unprivileged_userns_apparmor_policy'
    sysctl: permission denied on key 'kernel.usermodehelper.bset'
    sysctl: permission denied on key 'kernel.usermodehelper.inheritable'
    sysctl: permission denied on key 'net.core.bpf_jit_harden'
    sysctl: permission denied on key 'net.ipv4.tcp_fastopen_key'
    sysctl: permission denied on key 'net.ipv6.conf.all.stable_secret'
    sysctl: permission denied on key 'net.ipv6.conf.default.stable_secret'
    sysctl: permission denied on key 'net.ipv6.conf.enp1s0.stable_secret'
    sysctl: permission denied on key 'net.ipv6.conf.lo.stable_secret'
    sysctl: permission denied on key 'net.ipv6.conf.wlp2s0.stable_secret'
    sysctl: permission denied on key 'vm.mmap_rnd_bits'
    sysctl: permission denied on key 'vm.mmap_rnd_compat_bits'
    sysctl: permission denied on key 'vm.stat_refresh'
    vm.vfs_cache_pressure = 100
    deobs@IdeaPad:~$ 

    j’ajouterai:

    deobs@IdeaPad:~$ cat /proc/sys/vm/swappiness
    5
    deobs@IdeaPad:~$ cat /proc/sys/vm/vfs_cache_pressure
    100

    ubuntu-gnome 17.04_64bits
    IdeaPad P500 touch

    #5632
    deobs
    deobs
    Participant

    bon ca beug, desole si je double post

    deobs@IdeaPad:~$ cat /etc/sysctl.d/99-swappiness.conf
    vm.swappiness=5
    vm.vfs_cache_pressure=50

    et

    deobs@IdeaPad:~$ sysctl -a | grep vm.vfs*
    (...)
    vm.vfs_cache_pressure = 100
    deobs@IdeaPad:~$ 

    j’ajouterai:

    deobs@IdeaPad:~$ cat /proc/sys/vm/swappiness
    5
    deobs@IdeaPad:~$ cat /proc/sys/vm/vfs_cache_pressure
    100

    ubuntu-gnome 17.04_64bits
    IdeaPad P500 touch

    #5633
    nam1962
    nam1962
    Admin bbPress

    Là tu soulèves un curieux lièvre !
    Chez moi :

    ~]$ sysctl -a | grep vm.vfs*
    (...)
    vm.vfs_cache_pressure = 50

    (sur une Manjaro unstable, je n’ai pas accès à ma Xub : ordi prèté pour le moment)

    L’enquête vaut d’être menée ! 😉


    ? Un jeune site que j'aime bien, la ferrari du T-shirt  ...bio en plus : https://goudronblanc.com
    C'est notre mécène ! 🙂

    #5634
    deobs
    deobs
    Participant

    Là tu soulèves un curieux lièvre !

    moui, c’est due a ma nature cartesienne :p

    ubuntu-gnome 17.04_64bits
    IdeaPad P500 touch

    #5635
    deobs
    deobs
    Participant

    Hello,
    solution trouvée ! (enfin, y’avait pas a creuser bien loin)
    echo vm.vfs_cache_pressure=50 | sudo tee -a /etc/sysctl.d/99-sysctl.conf
    ensuite:
    sudo sysctl -p /etc/sysctl.d/99-sysctl.conf
    qui renvoie:
    vm.vfs_cache_pressure = 50

    🙂

    du coups, je recommanderai d’ajouter les parametres sysctl dans le fichier /etc/sysctl.d/99-sysctl.conf

    Pour completer l’optimisation de la memoire il y a egalement cette valeur:
    /proc/sys/vm/min_free_kbytes, ma valeur actuelle est de 67584

    je cherche comment peaufiner ca en fonction de ram (8gigas) et ferai un retour (ceci dit la valeur par defaut me semble adequate).

    ubuntu-gnome 17.04_64bits
    IdeaPad P500 touch

    #5636
    nam1962
    nam1962
    Admin bbPress

    Avant d’amender le tuto, je vais tester l’application de cette syntaxe à la swappiness 😉


    ? Un jeune site que j'aime bien, la ferrari du T-shirt  ...bio en plus : https://goudronblanc.com
    C'est notre mécène ! 🙂

    #5637
    deobs
    deobs
    Participant

    [Edit]Yup, ca marche:

    deobs@IdeaPad:~$ sudo sysctl -p /etc/sysctl.d/99-sysctl.conf
    [sudo] password for deobs:
    vm.vfs_cache_pressure = 60
    vm.swappiness = 4

    Si tu as la motive de faire des test, dans le meme tonneau il y aurai ceci:
    echo vm.drop_caches=3 | sudo tee -a /etc/sysctl.d/99-sysctl.conf
    La valeur par defaut est de zero, bien sur pour un serveur ca serai a conserver mais pour un desktop, 3 serai bienvenue. Qu’en dis tu ?

    drop_caches
    Writing to this will cause the kernel to drop clean caches, as well as
    reclaimable slab objects like dentries and inodes. Once dropped, their
    memory becomes free.
    To free pagecache: echo 1 > /proc/sys/vm/drop_caches
    To free reclaimable slab objects (includes dentries and inodes): echo 2 > /proc/sys/vm/drop_caches
    To free slab objects and pagecache: echo 3 > /proc/sys/vm/drop_caches

    ubuntu-gnome 17.04_64bits
    IdeaPad P500 touch

    #5639
    nam1962
    nam1962
    Admin bbPress

    Il semble que drop_cache soit une instruction de vidage manuel plutot destinée à un serveur.
    Elle peut même ralentir l’ordi, car après vidage, il va devoir repopuler les caches.
    La mettre dans le 99-sysctl.conf ne me parait pas si judicieux 😉

    Par contre je continue à être perplexe quand à l’emplacement des réglages : sur une Manjaro fraichement installée, je vois çà :

    :~$ ls /etc/sysctl.d -1
    100-manjaro.conf
    99-sysctl.conf
    :~$ cat /etc/sysctl.d/100-manjaro.conf
    vm.swappiness = 1
    vm.vfs_cache_pressure = 50
    :~$ cat /etc/sysctl.d/99-sysctl.conf
    vm.vfs_cache_pressure=50

    ? Un jeune site que j'aime bien, la ferrari du T-shirt  ...bio en plus : https://goudronblanc.com
    C'est notre mécène ! 🙂

    #5641
    deobs
    deobs
    Participant

    ah oui va savoir pourquoi j’ai compris le contraire :/
    Pour la manjaro, j’imagine qu’ils “push” leur config >99 pour override les parametres present dans la source de develloppement. Donc pas de verif ni modif a faire donc plus simple et rapide pour eux. du moins je suppose

    ubuntu-gnome 17.04_64bits
    IdeaPad P500 touch

    #5646
    nam1962
    nam1962
    Admin bbPress

    Par précaution (et c’est plus élégant) je mets donc les valeurs dans 99-sysctl.conf.
    J’ai amendé le tuto (et les autres sur le sujet) en ce sens 😉

    Je continue cependant à enquêter : en théorie, ce que j’indique au #5628 devrait s’appliquer….


    ? Un jeune site que j'aime bien, la ferrari du T-shirt  ...bio en plus : https://goudronblanc.com
    C'est notre mécène ! 🙂

15 sujets de 1 à 15 (sur un total de 24)

Vous devez être connecté pour répondre à ce sujet.