Pourquoi la permutation = 10 est-elle recommandée?

9

Une valeur de swappiness=10est recommandée dans le SwapFaq d'Ubuntu .

Pourquoi une valeur de 10 est-elle recommandée plutôt que swappiness=0?

Y a-t-il des avantages de 10 ou des inconvénients de zéro?

Eric
la source
3
@Mitch Cette question porte sur les raisons pour lesquelles les gens recommandent de réduire l' échange. Cette question est différente; il demande pourquoi l'échange devrait être au-dessus de zéro . Ce n'est donc pas demander pourquoi les gens recommandent qu'il soit si bas ; il demande pourquoi la recommandation est aussi élevée qu'elle l'est. Parce que la réponse là-bas (de manière tout à fait rationnelle) n'est pas d'accord avec l'argument pour réduire le swappiness jusqu'à présent, il y a un certain chevauchement avec ma réponse ici, mais en fin de compte, je pense que ce sont des questions distinctes (bien que liées) avec des réponses distinctes.
Eliah Kagan
@EliahKagan touché :)
Mitch

Réponses:

9

swappiness=0attendra pour échanger jusqu'à ce qu'il soit absolument nécessaire. La définition d'une valeur modérée telle swappiness=10que les pages seront échangées de la mémoire vers le disque un peu plus facilement. Cela peut éviter d'avoir à échanger beaucoup à la fois; un tel besoin peut introduire des retards ennuyeux.

De plus, souvent un processus s'exécute mais ne fait rien pendant une période prolongée. De nombreux démons (services d'arrière-plan) se comportent de cette façon. Vous pouvez avoir une application d'arrière-plan qui n'est pas utilisée pendant un certain temps. Et de nos jours, certaines applications sont implémentées en tant que processus multiples, comme Chromium et Google Chrome, où chaque onglet a un processus distinct derrière lui (pas un thread séparé, mais un processus distinct ). swappinessSi vous définissez une valeur telle que 10, ces tâches d'arrière-plan qui ne sont pas activement utilisées sont échangées en mémoire même lorsqu'elles peuvent rester encombrées dans la RAM. Ensuite, lorsqu'un processus plus activement utilisé doit allouer plus de RAM, il peut le faire plus rapidement.

En conclusion, permettre aux processus d'être échangés de la RAM vers le disque plus tôt que nécessaire confère souvent un avantage en termes de performances et des latences plus faibles lorsqu'un processus alloue de la mémoire. Cela se fait au détriment du temps nécessaire pour échanger les processus. Mais cela se fait généralement beaucoup moins fréquemment qu'un processus en utilisation active alloue et libère de la mémoire, donc le compromis en vaut souvent la peine.

Eliah Kagan
la source
Vous devez également prendre en compte le tampon de votre lecteur. Si vous avez un SSD avec un tampon de 512 Mo et 4 Go de RAM. vous pouvez probablement laisser cela à 10 sans vous soucier des problèmes de performances, car tout programme pourra allouer presque instantanément environ 1 Go de RAM. J'ai un SSD avec 256 Mo de mémoire tampon et 8 Go de RAM, donc je le laisse également à 10 car il garantit également une allocation rapide d'environ 1 Go dont j'ai rarement besoin.
stackount