一、vm.overcommit_memory的作用
Linux系统对大部分进行内存申请的程序都回复yes,以便能运行更多的程序。而这些程序申请内存后并不一定会马上使用,这种技术就叫做overcommit。通过vm.overcommit_memory来设置overcommit的内存分配策略,它有三个可选值
- 0:内核将检查是否有足够的内存分配给程序。如果没有则申请失败,并把错误返回给应用进程。而在Redis中这个错误就会表现为“Cannot allocate memory”,然后触发OOM
- 1:表示内核允许超量使用内存直到用完为止
- 2:表示内核决不超量使用内存,即系统整个内存空间不能超过swap+50%的RAM值,50%是overcommit_ratio默认值,此参数支持修改
二、vm.overcommit_memory在Redis中的设置
Redis建议把这个值设置为1,是为了让fork能够在低内存下也执行成功。
1、获取overcommit的值
cat /proc/sys/vm/overcommit_memory
2、设置overcommit的值
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1
最后
以上就是纯情狗最近收集整理的关于vm.overcommit_memory内存分配控制的全部内容,更多相关vm内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复