Aller au contenu


SWAP : déclenchement

swap swappiness déclenchement swapping

  • Vous ne pouvez pas répondre à ce sujet
6 replies to this topic

#1 Txon

Txon

    AïoligaToR

  • Administrateur
  • PipPipPipPipPipPipPipPipPip
  • 10 854 Messages :
  • Gender:Male

Posté 27 août 2014 - 15:45

Ceci est un complément à SWAP : espace d'échange


 

 

Salut !

 

Déclenchement du mécanisme de swap.

« À partir de 40% d'utilisation de la RAM (donc 60% de libre), le noyau peut se délester sur la swap.»

 

Depuis 2009, « swappiness » est incorporé au noyau de Linux. Il permet de paramétrer à sa convenance le réglage de déclenchement du ''swapping''.

 

Dans quasiment toutes les distributions Linux, le fichier système /proc/sys/vm/swappiness contient un paramètre de réglage standard fixé à 60, ce qui signifie qu'inversement, c'est à partir de 40% d'utilisation de la RAM que le système commencera à ''swapper'' c'est à dire décharger la mémoire dans la partition (ou le fichier) swap.

Suivant ce réglage, sur un ordinateur qui dispose pourtant de 1 Go de mémoire, le mécanisme de swap se déclenchera aux environs immédiats de 400Mo de mémoire utilisée ce qui peut être très vite fait. Par contre, si la machine a 6/8Go de mémoire RAM ou plus, il faudrait utiliser des applications très ''lourdes'' (certains jeux, architecture 3D, retouches vidéos, machine virtuelle ..) pour avoir à s'inquiéter.

 

Baisser la valeur de swappiness retarde l'utilisation de la partition d'échange. L'augmenter encore provoque au contraire un déclenchement plus rapide du ''swapping''.

Surtout sur les ordinateurs à faible capacité de mémoire RAM, il peut s'avérer important de diminuer cette valeur pour retarder le moment de va et vient entre la mémoire et le disque qui est un facteur important de ralentissement pour le système et les applications utilisées.

Ceci est d'autant plus vrai si une distribution ''lourde'' comme Ubuntu est utilisée dans un ordinateur ancien qui ne dispose même pas d'un Go de mémoire et dont les accès au disque sont lents. C'est tout aussi vrai si on veut économiser au maximum les accès à un SSD où serait installé la partition (ou le fichier) swap.

 

Il est possible d'éditer directement le fichier /proc/sys/vm/swappiness en mode administrateur mais la modification apportée ne sera pas pérenne.

En effet, au démarrage, Linux prend en compte les options du noyau spécifiées dans le fichier de configuration /etc/sysctl.conf et non la valeur indiquée préalablement dans le fichier swappiness.

 

 

[I] Solution ''à la Ubuntu''.

[II] Autres ..

 

…. …. …. ….


"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety."(Benjamin Franklin)


#2 Txon

Txon

    AïoligaToR

  • Administrateur
  • PipPipPipPipPipPipPipPipPip
  • 10 854 Messages :
  • Gender:Male

Posté 27 août 2014 - 15:49

…. …. …. ….

 

[I] .. Solution ''à la Ubuntu''.

Solution en reprenant le schéma directeur publié dans la documentation Ubuntu.

 

[a] Vérifier quel est le réglage de swappiness.

Dans le Terminal ..

cat /proc/sys/vm/swappiness

Sauf exception ou après modification, le résultat est 60.

ZL swap 11 swapiness.png

 

[b] Ajuster la valeur de swappiness à sa convenance.

Suivant la quantité de mémoire disponible le réglage peut-être porté à 40 (pour un déclenchement à partir de 60% d'utilisation de la mémoire), à 30, 20, 10, 5 (pour un déclenchement à partir de 95% d'utilisation de la mémoire) et même 0 (ce qui correspond à une utilisation du disque qu'en tout dernier recours).

Moins vous avez de mémoire RAM et plus basse devra être la nouvelle valeur indiquée via la commande sysctl. Pour un ordinateur qui n'a que 512 Mo de mémoire une valeur de 5 est bien assez grande. A moins, essayez 0 ou 1. Avec 1 Go de RAM, une valeur de 10 semble convenable. Au delà, 20,30, 40 .. sont envisageables.

Dans le Terminal ..

sudo sysctl vm.swappiness=x

où x est la nouvelle valeur : 40, 30, 20,10, 5 ..

ZL swappiness sysctl 40.png

 

[c] Provoquer la prise en compte de la nouvelle valeur.

Il faut désactiver puis réactiver le swap.

Dans le Terminal ..

sudo swapoff -av

puis,

sudo swapon -av

ZL swappiness swapon.png

 

 

[d] Fixer la nouvelle valeur pour les démarrage futurs.

Pour que cette valeur soit prise en compte de façon permanente il faut éditer le fichier /etc/sysctl.conf et imposer la valeur désirée en éditant la ligne ''vm.swappiness'' si elle existe (rare) ou en l'ajoutant ..

vm.swappiness=x

où x est la nouvelle valeur : 40, 30, 20,10, 5 ..

ZL sysctl 02 gksudo gedit.png

 

…. …. …. …. 


"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety."(Benjamin Franklin)


#3 Txon

Txon

    AïoligaToR

  • Administrateur
  • PipPipPipPipPipPipPipPipPip
  • 10 854 Messages :
  • Gender:Male

Posté 27 août 2014 - 15:54

…. …. …. ….

 

[II] .. Autres ..

 

[a] Pour contrôler le statut de la swap via le Terminal.

swapon -s

ou

free -m

LL swap.png

 

 

 

[b] Pour modifier provisoirement le déclenchement du mécanisme de swap comme au paragraphe [I .. a], il est possible d'utiliser la commande echo ..

sudo echo ''x'' > /proc/sys/vm/swappiness

où x est la nouvelle valeur : 40, 30, 20,10, 5 ..

 

 

[c] Pour que la modification soit prise en compte lors d'un nouveau démarrage, n'oubliez pas d'indiquer la nouvelle valeur dans le fichier /etc/sysctl.conf .. voyez :

.. How do you set 'swappiness'? (LWN.net .. mai 2004)

.. Gérer le seuil d’utilisation de la Swap (Michael .. IT Connect .. 03 mai 2013)

.. Managing RAM and SWAP (Coderwall .. 26 septembre 2013)

Ou encore, selon Kirk Kirkconnell - Couchbase, pour éviter le ''swapping'' sauf en dernier recours (valeur à 0)

Swappiness Kirk.png

 

 

[d] Edition du fichier /etc/sysctl.conf

Au paragraghe [I .. d] ci-dessus, la commande gedit a été utilisée mais vous pouvez aussi employer une commande comme nano, surtout si vous n'êtes pas en environnement de bureau Gnome.

sudo nano /etc/sysctl.conf

Sysctl.conf swapiness 40.png

 

 

[e] Valeur de déclenchement.

« Pour un ordinateur qui n'a que 512 Mo de mémoire une valeur de 5 est bien assez grande. A moins, essayez 0 ou 1. Avec 1 Go de RAM, une valeur de 10 semble convenable. Au delà, 20,30, 40 .. sont envisageables »

Selon Wikipedia en anglais ..

Swappiness 01.png

 

[f] Contrôle de la valeur après un redémarrage du système.

ZL swappiness 31 control.png

Il est également possible d'utiliser à nouveau la commande sysctl ..

sysctl vm.swappiness

ZL swappiness sysctl 50.png

 

….

 

Voir aussi : Zswap et zRam pour accélérer Linux (Cudoinj .. Infomars .. 09 août 2014)

et si vous avez encore un peu de temps ..

.. Linux / Unix Command: sysctl (Linux about)

.. Better Linux Disk Caching & Performance with vm.dirty_ratio & vm.dirty_background_ratio (Bob Plankers .. décembre 2013)

.. Sysctl : configurer les options kernel sous Linux (wiki Deimos .. février 2012)

.. La pagination, la segmentation et la mémoire virtuelle (Université Montréal .. 2009)

​.. [Linux] Gestion de la RAM et du Swap (Vincentl's blog .. 08 janvier 2014)

@+

[Retour en haut du sujet]


"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety."(Benjamin Franklin)


#4 Darksky

Darksky

    Martien

  • Eminence Verte
  • PipPipPipPipPipPipPipPip
  • 1 212 Messages :
  • Gender:Male
  • Location:Belgique

Posté 20 mai 2015 - 21:41

Merci pour ce tutoriel, appliqué avec succès sur une LMDE 2 et un pc équipé de 2Go de RAM.

 

J'ai ajouté dans le fichier /etc/sysctl.conf :

#Swappiness
vm.swappiness=30

où " #Swappiness" est commenté (et donc, utilisé à la manière d'un "titre") pour que je puisse m'y retrouver plus facilement si je dois de nouveau modifier le fichier.

 

Après un redémarrage, la valeur est prise en compte.

Super utile!

 

Merci!


"Ils ne savaient pas que c'était impossible, alors ils l'ont fait."

Mark Twain


#5 noisette

noisette

    Webmarster

  • Admin
  • PipPipPipPipPipPipPipPipPip
  • 21 797 Messages :
  • Gender:Male

Posté 21 mai 2015 - 06:20

Je l'ai également fait, merci bien de cette procédure, pas si simple à faire sans tes indications.  Merci !



#6 vigen

vigen

    Hardcore Papa

  • Tonton Flingueur
  • PipPipPipPipPipPipPipPipPip
  • 6 545 Messages :
  • Gender:Male
  • Location:Normandie

Posté 07 février 2017 - 09:42

Merci pour ce tutoriel, appliqué avec succès sur une LMDE 2 et un pc équipé de 2Go de RAM.

 

J'ai ajouté dans le fichier /etc/sysctl.conf :

#Swappiness
vm.swappiness=30

où " #Swappiness" est commenté (et donc, utilisé à la manière d'un "titre") pour que je puisse m'y retrouver plus facilement si je dois de nouveau modifier le fichier.

 

Après un redémarrage, la valeur est prise en compte.

Super utile!

 

Merci!

 

 

Personnellement, la valeur de Swappiness, je la descend à 10, et le met le "cache pressure" à 50. C'est un bon compromis :)

vm.swappiness=10
vm.vfs_cache_pressure=50

Vigen.



#7 Txon

Txon

    AïoligaToR

  • Administrateur
  • PipPipPipPipPipPipPipPipPip
  • 10 854 Messages :
  • Gender:Male

Posté 07 février 2017 - 16:47

 

Personnellement, la valeur de Swappiness, je la descend à 10, et le met le "cache pressure" à 50. C'est un bon compromis :)
vm.swappiness=10
vm.vfs_cache_pressure=50

 

​Merci pour mentionner le « cache pressure ». Plus qu'un compromis, ne serait-ce pas un complément ? Il y a un ''topo'' à faire là-dessus.

 

Memory pressure (linux-mm)

Linux simple performance tweaks (dakull .. GitHub)

Optimizando el rendimiento de nuestro Linux con Cache Pressure (Miguel Parada .. Ubutizando)

Optimizing Linux Memory Management for Low-latency / High-throughput Databases (Apurva Mehta .. Linked In)

 

Es-tu volontaire ?

 

@+


"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety."(Benjamin Franklin)




0 utilisateur(s) en train de lire ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)