Question Comment configurer la permutation?


J'ai besoin d'un moyen pas à pas, simple et facile pour configurer le swappiness.


298
2018-02-13 18:31


origine


Bon mot sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf" - redanimalwar
@redanimalwar vous devez aussi courir sudo sysctl -p pour charger la nouvelle valeur de swappiness à partir du fichier sysctl.conf, sinon la modification ne s'applique qu'au prochain redémarrage. - waldyrious


Réponses:


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

Un réglage de swappiness de zéro signifie que le disque sera évité sauf si absolument nécessaire (vous manquez de mémoire), tandis qu'un paramètre de permutation de 100 Cela 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 représente environ la moitié de ma mémoire vive. Vous pouvez vérifier la valeur de permutation de votre propre système en exécutant:

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

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

vm.swappiness = 10

Redémarrez pour que le changement prenne effet.

Vous pouvez également modifier la valeur lorsque votre système fonctionne toujours avec:

sysctl vm.swappiness=10

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

Pour calculer votre formule d'échange:

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

le total est donc 3950/100 = 39,5 * 10 = 395

Alors qu'est-ce que cela signifie est que quand dix % (395 Mo) de RAM est parti alors il va commencer à utiliser swap.


Aidez-moi . Ubuntu Échanger

Qu'est-ce que swappiness

Le paramètre swappiness contrôle la tendance du noyau à déplacer les processus de la mémoire physique et sur le disque d'échange. Comme les disques sont beaucoup plus lents que la RAM, cela peut ralentir les temps de réponse du système et des applications si les processus sont trop agressifs.

  • swappiness peut avoir une valeur comprise entre 0 et 100.
  • swappiness=0:
    • Version du noyau 3.5 et plus récente: désactive le swapiness.
    • Version du noyau antérieure à 3.5: évite de permuter les processus en dehors de la mémoire physique aussi longtemps que possible.
  • swappiness=1:
    • Version du noyau 3.5 et plus: swappiness minimum sans le désactiver entièrement.
  • swappiness=100:
    • Indique au noyau de permuter de manière agressive les processus de la mémoire physique et de les déplacer pour échanger le cache.

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

Le paramètre par défaut dans Ubuntu est swappiness=60. La réduction de 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.


Exemple

Commencer à utiliser swap à 91%:

enter image description here Comme j'ai configuré mon système & vm pour utiliser la RAM à 90%, à 90% il n'y avait pas d'échange.

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


453
2018-02-13 18:33



Le swappiness de 100 ne permet pas de permuter les programmes immédiatement, et une valeur de 60 ou 90 swap moyenne n'est pas utilisée lorsque ram est plein à 60 ou 90%. C'est un ratio de préférence pour voler des pages du cache contre échanger des choses 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ère fortement essayer et échanger des pages. Le réglage n'a d'effet qu'une fois que la mémoire est (presque) entièrement utilisée et que le noyau doit choisir comment en libérer. - psusi
Vous devez faire remarquer que la RAM qui n'est PAS occupée par les programmes en cours d’exécution est utilisée comme cache disque. En diminuant ainsi la perméabilité, vous augmentez les chances qu’un programme ne soit pas échangé, mais en diminuant la taille. du cache disque, ce qui peut ralentir l’accès au disque. Les effets de ce paramètre sur la performance réelle ne sont donc pas si simples ... vous êtes bien sûr invités à expérimenter bien sûr, mais je pense que les paramètres par défaut sont définis par des personnes qui comprennent assez bien le sujet :) - Sergey
@Sergey et l’ironie de la situation est que ceux qui ont peu de RAM ont plus de chances d’essayer tous les trucs qu’ils peuvent trouver pour améliorer leurs performances et sont plus susceptibles d’être ceux pour lesquels le chiffre de 60 ou plus serait le meilleur. Ceux d'entre nous qui le fixent à 10 parce que nous avons des tonnes de RAM ne gagnent pas autant qu'ils le feront s'ils le font. - Jon Hanna
@ Libreg_ben: voir linuxatemyram.com :) - Sergey
Il suffit de laisser une discussion similaire ici - unix.stackexchange.com/questions/88693/… - Elijah Lynn