Vous pourriez trouver la réponse de John Nilsson à ma question utile pour purger le cache afin de tester si cela est lié à votre problème :
sync && echo 1 > /proc/sys/vm/drop_caches
Bien que je suppose que la seule vraie différence est 1 contre 3
Le contenu de /proc/meminfo vous dire pourquoi le noyau utilise la RAM.
Vous pouvez utiliser /proc/sys/vm/vfs_cache_pressure pour forcer le noyau à récupérer la mémoire utilisée pour les caches liés au système de fichiers plus paresseusement ou avec impatience.
Notez que votre application ne peut bénéficier du réglage de ce paramètre que si elle n'effectue que peu ou pas d'E/S disque.
Vous pouvez augmenter vfs_cache_pressure
ainsi que définir swappiness
à 0
.
Cela accélérera la récupération du cache par le noyau, tout en accordant aux processus une faveur égale ou supérieure lorsqu'ils décideront de ce qui sera paginé.
Vous pouvez seulement voulez le faire si les processus qui vous intéressent font très peu d'E/S de disque.
Si un processus lié aux E/S réseau doit permuter pour répondre aux requêtes, c'est un problème et la véritable solution consiste à le placer sur un serveur moins compétitif.
Avec le swappiness
par défaut paramètre, le noyau va presque toujours favoriser le maintien du cache lié à FS dans la mémoire réelle.
Ainsi, si vous augmentez la pression du cache, assurez-vous d'ajuster également swappiness
.