我阅读了了解虚拟内存的文档,它说在 Linux VM 中更改可调参数的一种方法是命令:
sysctl -w vm.max_map_count=65535
我想知道数字 65535 的含义以及该设置可以使用多少内存。
我阅读了了解虚拟内存的文档,它说在 Linux VM 中更改可调参数的一种方法是命令:
sysctl -w vm.max_map_count=65535
我想知道数字 65535 的含义以及该设置可以使用多少内存。
最大地图计数:
此文件包含进程可能拥有的最大内存映射区域数。内存映射区域用作调用 malloc 的副作用,直接由 mmap 和 mprotect 使用,也用于加载共享库时。
虽然大多数应用程序需要少于一千个映射,但某些程序,特别是 malloc 调试器,可能会消耗大量映射,例如,每次分配最多一到两个映射。
默认值为 65536。
底线:此设置限制了离散映射内存区域的数量- 就其本身而言,它对这些区域的大小或进程可用的内存没有限制。
是的,这个:
sysctl -w vm.max_map_count=65535
只是写这个更好的方式:
echo 65535 > /proc/sys/vm/max_map_count
echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
sysctl -p
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
这不起作用,因为我们无法直接更改配置文件。运行以下命令。
echo vm.max_map_count=262144 | sudo tee -a /etc/sysctl.conf
但是检查是否vm.max_map_count
已经存在。您可以使用
grep vm.max_map_count /etc/sysctl.conf