【Redis运维】vm.overcommit_memory内存分配控制

tanglu 3285 2020-10-22

一、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

版权声明
本站所有文章均为原创,转载请注明出处!小站维护不易,如果对您有所帮助,希望能点击一下站内广告,谢谢!
上一篇:【Redis运维】使用rdbtools分析当前key的使用情况
下一篇:curl命令常用选项与示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

微信二维码