429 votes

Comment configurer la permutation ?

J'ai besoin d'une méthode simple et facile, étape par étape, pour configurer la permutation.

24 votes

Une doublure sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf"

16 votes

@redanimalwar vous avez aussi besoin d'exécuter sudo sysctl -p pour charger la nouvelle valeur de swappiness à partir du fichier sysctl.conf, sinon le changement s'applique seulement au prochain redémarrage.

619voto

Kevin Points 454

Le noyau Linux fournit un paramètre modifiable qui contrôle la fréquence d'utilisation du fichier d'échange, appelé swappiness.

Un paramètre de permutation de zéro signifie que le disque sera évité à moins que cela ne soit absolument nécessaire (vous manquez de mémoire), tandis qu'un paramètre de swappiness de 100 signifie que les programmes seront échangés sur le disque presque instantanément.

Le système Ubuntu est livré avec une valeur par défaut de 60, ce qui signifie que le fichier d'échange sera utilisé assez souvent si l'utilisation de la mémoire est environ la moitié de ma RAM. Vous pouvez vérifier la valeur de swap de votre propre système en exécutant :

one@onezero:~$ cat /proc/sys/vm/swappiness
60

Comme je dispose de 4 Go de RAM, j'aimerais réduire ce chiffre à 10 ou 15. Le fichier d'échange ne sera alors utilisé que lorsque mon utilisation de la RAM sera d'environ 1 Go. 80 o 90 pour cent. Pour changer la valeur de permutation du système, ouvrez /etc/sysctl.conf comme racine . Ensuite, modifiez ou ajoutez cette ligne au fichier :

vm.swappiness = 10

Appliquez la modification.

sudo sysctl -p

Vous pouvez également modifier la valeur pendant que votre système est encore en fonctionnement avec :

sysctl vm.swappiness=10

Vous pouvez également effacer votre swap en exécutant swapoff -a et ensuite swapon -a en tant que root au lieu de redémarrer pour obtenir le même effet.

Pour calculer votre formule de swap :

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

donc le total est 3950 / 100 = 39.5 * 10 = 395

Donc ce que ça veut dire c'est que quand 10 % (395 Mo) de mémoire vive restante, il commencera à utiliser le swap.


                                           Aide . Ubuntu . Echanger

                                           Qu'est-ce que l'échange ?

Le paramètre swappiness contrôle la tendance du noyau à déplacer les processus de la mémoire physique vers le disque swap. Les disques étant beaucoup plus lents que la RAM, cela peut entraîner des temps de réponse plus lents pour le système et les applications si les processus sont trop agressivement déplacés hors de la mémoire.

  • swappiness peut avoir une valeur comprise entre 0 et 100.
  • swappiness=0 :
    • Noyau version 3.5 et plus récente : désactive la permutation.
    • Version du noyau antérieure à 3.5 : évite de faire sortir les processus de la mémoire physique aussi longtemps que possible.
  • swappiness=1 :
    • Noyau version 3.5 et plus : swappiness minimum sans le désactiver entièrement.
  • swappiness=100 :
    • Indique au noyau de faire sortir agressivement les processus de swap de la mémoire physique et de les déplacer dans le cache de swap.

Voir http://en.wikipedia.org/wiki/Swappiness .

Le paramètre par défaut dans Ubuntu est swappiness=60 . Réduire la valeur par défaut de swappiness améliorera probablement les performances globales pour une installation de bureau Ubuntu typique. Une valeur de swappiness=10 est recommandé, mais n'hésitez pas à expérimenter.


Ejemplo

J'ai commencé à utiliser swap à 91% :

enter image description here Comme j'ai configuré mon système et mon vm pour utiliser la mémoire vive à 90% à 90% il n'y a pas eu d'échange.

Après cela, j'ai ouvert quelques applications comme Firefox et Shutter, et il a commencé à permuter parce que l'utilisation de la RAM est supérieure à la normale. 90% .

143 votes

Un taux de permutation de 100 ne signifie pas que les programmes sont immédiatement permutés, ni qu'une valeur de 60 ou 90 signifie que la permutation est utilisée lorsque la RAM est pleine à 60 ou 90 %. Il s'agit d'un ratio de préférence pour le vol de pages du cache par rapport à l'échange de données pour libérer de la mémoire quand il n'y en a pas assez. Une valeur faible préfèrera fortement voler des pages du cache, et une valeur élevée préfèrera fortement essayer d'échanger des pages. Ce paramètre n'a d'effet que lorsque la mémoire est (presque) entièrement utilisée et que le noyau doit choisir comment en libérer.

74 votes

Il faut savoir que la RAM qui n'est PAS occupée par des programmes en cours d'exécution est utilisée comme cache disque... donc, en diminuant la permutation, vous augmentez les chances qu'un programme ne soit pas permuté, mais en même temps vous diminuez la taille du cache disque, ce qui peut rendre l'accès au disque plus lent. Ainsi, les effets de ce paramètre sur les performances réelles ne sont pas si simples... vous pouvez expérimenter bien sûr, mais je pense que les valeurs par défaut sont définies par des personnes qui comprennent suffisamment le sujet :)

20 votes

@Sergey et l'ironie de la chose est que ceux qui ont peu de RAM sont les plus susceptibles d'essayer toutes les astuces qu'ils peuvent trouver pour améliorer les performances et sont plus susceptibles d'être les personnes pour lesquelles 60 ou même plus serait le meilleur chiffre. Ceux d'entre nous qui le règlent sur 10 parce qu'ils ont des tonnes de RAM ne gagnent pas autant qu'ils perdront en le faisant.

1voto

NickDoom Points 221

Pour un swap ZRAM sans partitions/fichiers de swap réels, utilisez 100. Il pré-compressera tout ce qui peut l'être, laissant le cache intact et décompressant rapidement les données si nécessaire (aussi, sans swap réel, vous devrez augmenter admin_reserve_kbytes x2 ou même x4 pour éviter que le système entier ne se fige sur une faible quantité de RAM au lieu de laisser tomber une application affamée).

Pour les SSD avec une partition swap réelle, utilisez 1. Cela empêchera le swap aussi longtemps que possible, en sacrifiant le cache (mais le cache peut être facilement relu depuis le SSD).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X