web-dev-qa-db-fra.com

Quelle quantité de mémoire peut utiliser vm

J'ai lu le document Comprendre la mémoire virtuelle et il a dit une méthode pour changer les paramètres réglables sous Linux VM était la commande:

sysctl -w vm.max_map_count=65535

Je veux savoir ce que signifie le nombre 65535 et combien de mémoire vm pourrait utiliser par le paramètre.

47
solomon_wzs

De la documentation du noyau Linux :

max_map_count:

Ce fichier contient le nombre maximum de zones de carte mémoire qu'un processus peut avoir. Les zones de carte mémoire sont utilisées comme effet secondaire de l'appel de malloc, directement par mmap et mprotect, et également lors du chargement de bibliothèques partagées.

Alors que la plupart des applications nécessitent moins de mille cartes, certains programmes, en particulier les débogueurs malloc, peuvent en consommer beaucoup, par exemple jusqu'à une ou deux cartes par allocation.

La valeur par défaut est 65536.

Conclusion: ce paramètre limite le nombre de zones de mémoire mappée discrète - à lui seul, il n'impose aucune limite à la taille de ces zones ou à la mémoire utilisable par un processus.

Et oui, ceci:

sysctl -w vm.max_map_count=65535

est juste une meilleure façon d'écrire ceci:

echo 65535 > /proc/sys/vm/max_map_count
81
thkala
echo 'vm.max_map_count=262144' >> /etc/sysctl.conf

sysctl -p
8
田咖啡