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.
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
echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
sysctl -p