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 2 réponses, 2 participants et a été mis à jour par nam1962 nam1962, il y a 2 mois et 1 semaine.

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

    Sous Linux, on peut optimiser la gestion de la RAM en gérant la swappiness.

    Régler 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 -a /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 faut limiter très fortement la swap donc regardez ce post : https://dolys.fr/forums/topic/1327/

    Sur les ordinateurs suffisamment costauds en RAM (plus de 6Go), je complète ceci par la mise de /tmp en RAM

    Régler la swap

    Il y a 3 moyens d’avoir une swap sous Linux : une partition swap, une swapfile, ou utiliser systemd-swap

    Je vous présente ici la solution que je préfère, systemd-swap (merci aux membres du forum Manjaro qui me l’ont fait découvrir) qui a plusieurs avantages :

    * contrairement aux deux autres solutions, elle ne mobilise pas en permanence un espace, mais s’ajuste aux besoins.
    * couteau suisse de la gestion de swap, elle ajoute un outil d’optimisation : zswap

    Préparation

    Si vous avez une partition swap, il faut préalablement la supprimer avec gparted et supprimer son entrée UUID dans fstab via :

    gedit admin:///etc/fstab

    Si vous avez une /swapfile (automatique chez Ubuntu post 18.04), là aussi la supprimer :

    sudo swapoff -a
    sudo rm -f /swapfile

    Sous Ubuntu et variantes :

    git clone https://github.com/Nefelim4ag/systemd-swap.git
    ./systemd-swap/package.sh debian
    cd ~/systemd-swap
    sudo dpkg -i systemd-swap_*_any.deb

    Pour la dernière commande, je remplace * par le numéro de version dans le .deb

    Sous Manjaro et autres Arch :

    sudo pacman -S systemd-swap

    Puis pour toutes les distributions :

    gedit admin:///etc/systemd/swap.conf

    Je m’assure d’avoir :

    zram_enabled=0
    zswap_enabled=1
    swapfc_enabled=1

    on peut l’obtenir en principe avec la commande :

    sudo sed -i 's/\(swapfc_enabled=\)[01]/\11/' /etc/systemd/swap.conf && grep "_enabled" /etc/systemd/swap.conf

    et enfin

    systemctl start systemd-swap
    systemctl enable systemd-swap

    J’y ai gagné l’espace de ma partition swap et la place de la swapfile dans /
    Et je sais que comme je swappe peu (swappiness à 5), je suis couvert en cas de dépassement.
    Si j’avais un évènement exceptionnel, certes mon système ne serait pas immédiatement vivace, mais ne gèlerait pas.

    Pour vérifier le bon fonctionnement de systemd-swap :

    swapon -s

    Qui doit vous indiquer quelque chose de ce genre :

    ~]$ swapon -s
    Nom de fichier Type Taille Utilisé Priorité
    /var/lib/systemd-swap/swapfc/1 file 524284 780 -2

    [Note] J’ai désactivé l’hibernation en supprimant resume dans
    /etc/default/grub et dans /etc/mkinitcpio.conf puis :

    sudo update-grub
    sudo mkinitcpio -P

    J’ai aussi mis le contenu de /tmp (les fichiers temporaires) en RAM : https://dolys.fr/forums/topic/accelerer-le-demarrage-sous-linux/

     


     

    Explication des réglages de swappiness : 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

    L’avis de la communauté Ubuntu :

    The default setting in Ubuntu is swappiness=60. Reducing the default value of swappiness will probably improve overall performance for a typical Ubuntu desktop installation. A value of swappiness=10 is recommended, but feel free to experiment. Note: Ubuntu server installations have different performance requirements to desktop systems, and the default value of 60 is likely more suitable. –> source

    Et enfin, excellente explication du fonctionnement de la mémoire sous Linux par Nicolas PANHALEUX. 

     


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

    #11509
    andso
    andso
    Participant

    bonjour nam et tous
    pourquoi ne pas avoir plusieurs récipiendaires pour la swap et définir des priorités?

    j’ utilise zram (je sais: t’ aime pas) qui crée un tampon swap en mémoire vive
    explication vachement initiale
    et aprés utilisation de swapoff swapon pour définir les piorités:

    pj@pj-desktop:~$ cat /proc/swaps
    Filename				Type		Size	Used	Priority
    /dev/sda9                               partition	4364284	0	-3
    /dev/zram0                              partition	1000112	0	-1
    /dev/zram1                              partition	1000112	0	-2
    

    les zram0 et zram1 correspondent aux 2 cœurs de ma cpu: eles devraient avoir la même priorité.

    j’ obtiens mon systeme extrémement fluide

    mon réglage en test (avec 4Go de mem) de /etc/sysctl.d/99-swappiness.conf:

    vm.swappiness=10
    vm.vfs_cache_pressure=100

    edit: tu l’ as crée le /etc/systemd/swap.conf ?

    #11510
    nam1962
    nam1962
    Admin bbPress

    Hello andso, l’avantage de systemd-swap est qu’il crée des tranches de swap de 512 Mo au fur et à mesure des besoins.

    le /etc/systemd/swap.conf a été créé lors de l’install de systemd-swap, j’ai juste dû activer swapfc


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

3 sujets de 1 à 3 (sur un total de 3)

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