web-dev-qa-db-fra.com

Est-ce que "min_free_kbytes = 256000" autorise la mise en cache même lorsque la mémoire libre est à 250 Mo?

En fait, je trace un graphique de mémoire qui montre la mémoire libre, en cache, utilisée et tampon sur ma machine virtuelle. Et je prends ces valeurs à l'aide de la commande sar -r. Mon min_free_kbytes est 256000.

enter image description here

Maintenant, la mémoire en cache augmente continuellement jusqu'à ce qu'il ne reste que 500 Mo de mémoire disponible. Pourquoi la mémoire en cache est-elle réduite dès que la mémoire disponible est réduite à environ 500 Mo alors que le min_free_kbytes est défini sur 250 Mo?

3
Mukund Gandlur

La variable ajustable en /proc/sys/vm/min_free_kbytes ne définit pas le moment exact où le système commencera à récupérer différentes formes de mémoire en mémoire cache, le cas échéant.

La variable ajustable en /proc/sys/vm/min_free_kbytes sert à calculer au moins un le minimum nombre de pages de mémoire et un faible nombre de pages mémoire, par zone, le cas échéant. Une fois que le nombre de pages de mémoire disponibles est inférieur au faible seuil, le système de gestion de la mémoire commencera à tenter de récupérer les pages de mémoire en mémoire cache disponibles. L’objectif est de ne jamais vraiment toucher le le minimum nombre de pages de mémoire (même s’il le peut), tout en conservant de la place (et des temps de réponse) pour les besoins en mémoire à faible latence.

Voir également:
/proc/meminfo/proc/zoneinfo

La gestion de la mémoire sous Linux est un grand sujet et ma réponse est superficielle.

2
Doug Smythies