生产redis内存80%警告分析处理

内存80%告警:

2017-03-13早上redis内存出现80%告警异常,处理步骤:

1、  客户端用info memory 命令查看内存使用情况:

其中used_memory_human:2.5G,机器总内存4G

Swap区已经有15%左右的使用率,说明redis分配内存已经不够用(used_memeroy>可用最大内存),操作系统开始进行内存与swap空间交换,把内存中旧的或不再使用的内容写入硬盘上

 

1、  查看生产环境redis.conf文件的配置, 发现redis都是初始的默认配置(没有专业的运维团队支持 =。=!),经阅读相关文档,初定修改如下的一些默认配置:

1>     timeout 300   //客户端连接闲置300秒后,连接关闭

修改原因:原先是0,每次连接都会关闭,设置300后,不会频繁的新建立连接,提升性能;

2>     tcp-keepalive 60  //tcp 心跳包,官方建议配置60s,

修改原因: 可以检测dead peers,保持连接可用;

3>  logfile "/data/logs/redis/redis.log"

修改原因: 配置日志文件地址

4> stop-writes-on-bgsave-error no  //  设置为yes:如果RDB快照激活,最近的写操作保存失败后,redis将会停止写数据, 直到后台的写程序正常运行

设置为no:如果硬盘有一些问题,redis也会正常运行,不会影响整个流程;

5> slave-read-only yes   //从服务只读  这个是默认的,可以不配置

6> repl-timeout 300  // repl-timeout 300 主从同步的超时时间

7> maxmemory 2g  // 最大内存配置,如果达到最大值,将会按照内存回收的策略进行回收,如果设置了key的过期时间

# 最大内存策略:如果达到内存限制了,Redis如何选择删除key。你可以在下面五个行为里选:
# volatile-lru -> 根据LRU算法删除带有过期时间的key。
# allkeys-lru -> 根据LRU算法删除任何key。
# volatile-random -> 根据过期设置来随机删除key, 具备过期时间的key。 
# allkeys->random -> 无差别随机删, 任何一个key。 
# volatile-ttl -> 根据最近过期时间来删除(辅以TTL), 这是对于有过期时间的key 
# noeviction -> 谁也不删,直接在写操作时返回错误。

 

8> maxmemory-policy  volatile-ttl  //key失效策略,过期时间

9> client-output-buffer-limit slave 1024mb 256mb 0 //客户端的输出缓冲区限制,表示:输出缓冲区达到1024mb或者客户端达到256m时,客户端立即断开

 

以上就是内存异常后,做的一些redis配置的修改。

此外,还扩展了redis的内存,从原先的4g扩展到8g,目前运行稳定,缓存数据保持在2.5-3g之间。

转载于:https://www.cnblogs.com/beyond-self-ldx/p/6604797.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值