可以使用多少内存

时间:2012-07-27 08:06:48

标签: linux-kernel

我阅读了文档Understanding Virtual Memory,并说它在Linux VM中更改可调参数的一种方法是命令:

sysctl -w vm.max_map_count=65535

我想知道数字65535的含义以及设置可以使用多少内存。

3 个答案:

答案 0 :(得分:76)

来自the Linux kernel documentation

  

max_map_count:

     

此文件包含进程的最大内存映射区域数   可能有。内存映射区域用作调用的副作用   malloc,直接由mmap和mprotect,以及加载共享时   库。

     

虽然大多数应用程序需要不到一千张地图,但确定   程序,特别是malloc调试器,可能会消耗很多,   例如,每个分配最多一个或两个地图。

     

默认值为65536。

底线:此设置限制了离散映射内存区域的数量 - 它本身对 size 没有限制区域或进程可用的内存。

是的,这个:

sysctl -w vm.max_map_count=65535

是一种更好的写作方式:

echo 65535 > /proc/sys/vm/max_map_count

答案 1 :(得分:8)

echo 'vm.max_map_count=262144' >> /etc/sysctl.conf

sysctl -p

答案 2 :(得分:0)

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是否已经存在。您可以使用

cat /etc/sysctl.conf | grep vm.max_map_count