Swapiness Linux - Réglage des paramètres de la VM du noyau

9

Avant de lire ceci, veuillez noter que je comprends les avantages de la mise en cache. Je connais le dogme selon lequel le bélier inutilisé est du bélier perdu.

Cette question est celle que j'ai adaptée d'une question précédente:

suppression de ram en cache linux

Dans cette question, j'étais curieux de savoir comment mon serveur utilise et met en cache la mémoire RAM. Le système est assez dynamique, donc je pense que les fichiers mis en cache ne m'apportent pas vraiment beaucoup de gain. De plus, nous avons du code sur le serveur qui doit accéder rapidement à de grandes quantités de RAM en peu de temps pour traiter les fichiers vidéo et je crois que je verrai un avantage en termes de performances en remettant directement le RAM plutôt qu'en le supprimant du cache, puis le remettre.

Je voudrais savoir si certains d'entre vous ont déjà ajusté la valeur par défaut de 60 dans le fichier suivant (cela se trouve sur un serveur Ubuntu):

/proc/sys/vm/swappiness  

Et si oui, quels effets avez-vous vus. Si je remplace la valeur par défaut de 60 par 30, verrai-je moins d'échange et beaucoup plus de réutilisation du cache périmé? Dois-je approcher 0 ou 100 pour diminuer la perméabilité et augmenter la réutilisation du cache?

Enfin, quelqu'un sait pourquoi la valeur par défaut est définie sur 60?

REMARQUE: s'il est proche de 0, Linux préférera conserver les applications en RAM et ne pas augmenter les caches. S'il est proche de 100, Linux préférera échanger des applications et agrandir autant que possible les caches. La valeur par défaut est un 60 sain. - Merci pour le lien ci-dessous, 3dInfluence.

Patrick R
la source

Réponses:

6

Edit: Réécrit la réponse pour qu'elle soit plus courte et plus claire j'espère :)

Vous avez vraiment besoin de comprendre comment le sous-système VM fonctionne dans son ensemble pour commencer à peaufiner les paramètres ajustables ou vous pouvez constater que vous n'obtenez pas les résultats escomptés. Cet article est un très bon point de départ sur la façon dont ces paramètres fonctionnent avec une inclinaison de bureau.

Donc, plus à votre question. Swappiness contrôle le moment où le sous-système VM récupère les pages de table de processus en les démappant et en les paginant, alias swapping. Ce paramètre ajustable fonctionne en disant au sous-système VM de rechercher les pages à échanger lorsque le% de mémoire mappé aux tables de pages de processus + la valeur de swappiness est> 100. Ainsi, un paramètre de 60 amènera le système à commencer à paginer les pages périmées à partir de la page de processus table lorsqu'il utilise plus de 40% de la mémoire de votre système. Si vous souhaitez autoriser vos programmes à utiliser plus de mémoire au détriment du cache, vous voudrez réduire la valeur de swappiness. Vous voudrez également jeter un œil à / proc / sys / vm / min_free_kbytes et / proc / sys / vm / vfs_cache_pressure. Comme cela contrôlera également la quantité de mémoire gardée en réserve et l'agressivité de la mise en cache.

3dinfluence
la source
@ 3dinfluence - J'ai travaillé sur cet article auquel vous avez fait référence ci-dessus. Grand recours!
Patrick R
1
linuxinsight.com/proc_sys_vm_hierarchy.html vous donnera une ou deux phrases sur ce que font chacun des paramètres ajustables. Mais j'ai obtenu ces informations sur le fonctionnement de l'échange à partir d'un livre intitulé "Performance Tuning for Linux Servers"
3dinfluence
+1 grâce à 3dinfluence. Jusqu'à présent, ce livre a été extrêmement éducatif.
Patrick R
C'est super .... avez-vous pu améliorer les performances de votre application?
3dinfluence
J'ai pu améliorer les performances. De plus, j'ai découvert que la commande suivante aide pendant le tweeking: # sysctl -w vm.swappiness = 40
Patrick R