Question Linux swapiness - Ajustement des paramètres de la machine virtuelle du noyau


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

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

suppression de la RAM en cache Linux

Dans cette question, j'étais curieux de savoir comment mon serveur utilise et met en cache la RAM. Le système est assez dynamique alors Je crois que les fichiers en cache ne me permettent pas vraiment de gagner beaucoup. De plus, nous avons un 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 de performance en remettant directement le bélier au lieu de le vider de son cache, puis de le remettre.

J'aimerais savoir si l'un d'entre vous a déjà ajusté la valeur par défaut de 60 dans le fichier suivant (ceci se trouve sur un serveur Ubuntu):

/proc/sys/vm/swappiness  

Et si oui, quels effets avez-vous vu. Si je remplace la valeur par défaut de 60 par 30, verrai-je moins de permutation et beaucoup plus de réutilisation du cache obsolète? Est-ce que je m'approche de 0 ou 100 pour diminuer la permutation et augmenter la réutilisation du cache?

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

REMARQUE: Si la valeur est proche de 0, Linux préférera conserver les applications en RAM et ne pas développer les caches. Si ce chiffre approche les 100, Linux préférera échanger les applications et agrandir autant que possible les caches. La valeur par défaut est 60. - Merci pour le lien ci-dessous, 3dInfluence.


9
2018-02-02 14:39


origine




Réponses:


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

Vous devez vraiment comprendre le fonctionnement du sous-système de la machine virtuelle pour commencer à peaufiner les paramètres ajustables, sinon vous risquez de ne pas obtenir 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 de la machine virtuelle récupère les pages de table de processus en les démappant et en les paginant, c'est-à-dire en les échangeant. Ce paramètre ajustable fonctionne en indiquant au sous-système de la machine virtuelle de rechercher les pages à permuter lorsque le% de mémoire mappé pour traiter les tables de pages + la valeur de swappiness est> 100. Ainsi, un paramètre de 60 entraînera la pagination des 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 davantage de mémoire au détriment du cache, vous souhaiterez réduire la valeur swappiness. Vous voudrez également examiner / proc / sys / vm / min_free_kbytes et / proc / sys / vm / vfs_cache_pressure. Cela permettra également de contrôler la quantité de mémoire conservée et l’agressivité de la mise en cache. Voir cet article que j'ai lié à pour plus d'informations sur le dernier de ceux-ci.


6
2018-02-02 15:23



@ 3dinfluence - J'ai travaillé sur cet article que vous avez cité plus haut. Grand recours! - Patrick R
linuxinsight.com/proc_sys_vm_hierarchy.html vous donnera une phrase ou deux sur ce que font chacun des réglages. Mais j'ai eu cette information sur le fonctionnement de swappiness dans un livre intitulé "Performance Tuning for Linux Servers". - 3dinfluence
+1 merci 3dinfluence. Jusqu'à présent, ce livre a été extrêmement instructif. - Patrick R
C'est génial .... 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 était utile pendant le tweeking: # sysctl -w vm.swappiness = 40 - Patrick R