zabbix告警突然从某个时间点开始提示CPU使用高,网卡流量也一直居高不下。

首先查看redis日志,发现告警时间点redis主节点被重启了,发生了主备切换,并且在日志中发现这么一段

[3081] 06 Dec 02:33:28.090 # Client addr=****:35810 fd=122 name= age=88 idle=88 flags=S db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=16299 oll=3041 omem=79211304 events=rw cmd=psync scheduled to be closed ASAP for overcoming of output buffer limits.
[3081] 06 Dec 02:33:28.090 # Connection with slave *****:6379 lost.

scheduled to be closed ASAP for overcoming of output buffer limits意思是:psync的命令超过了output-buffer-limits,master主动关闭了slave的连接。然后slave被断开了和master的连接,然后slave又重新找master请求同步,然后就陷入了恶性循环,slave找master做全同步的过程是一个很消耗cpu消耗io消耗带宽的过程,所以会一直持续的告警。

output-buffer-limits这个参数的作用是:当客户端来获取数据的时候,数据会被保存在output-buffer中,等信息传输完后output-buffer中的数据会被清理掉,redis对output-buffer做了限制。

这个时候问题根源已经找到,就是主备切换以后要同步的数据过大,超出了output-buffer-limits这个参数设置的值,所以数据同步一直失败。

解决办法:

在master节点执行redis-cli config set client-output-buffer-limit slave '2147483648 1073741824 300',放大这个限制,当然这个参数里面的3个数字需要根据自己的系统实际情况来定。

redis-cli  config rewrite -这个命令是将变更的配置落地到配置文件的,即使redis再次重启,这个变更也不会失效。这部可执行可不执行。

2147483648 -是一个硬性限制,当output-buffer的大小大于2147483648之后就会断开连接

1073741824 300 -是一个软限制,当output-buffer的大小大于1073741824并且超过了300秒的时候就会断开连接

注意:执行完这个命令机器的cpu和内存都会有一定的上涨。

最新文章

  1. 计算机程序的思维逻辑 (40) - 剖析HashMap
  2. Subversion Edge
  3. 从主机访问虚拟机上的Apache
  4. R12将银行和分行都使用TCA管理
  5. [转]Backbone.js简单入门范例
  6. JavaScript Date 对象
  7. [兼容]IE下textarea滚动条不能滚动
  8. Yii2 AR find用法 (2016-05-18 12:06:01)
  9. Yii-数据模型- rules类验证器方法详解
  10. 【DFS/BFS】NYOJ-58-最少步数(迷宫最短路径问题)
  11. linux别名
  12. Java web 文件下载
  13. Win7+CentOS双系统,最清晰细致的教程!
  14. 怎样下载并编译Android4.0内核源代码goldfish(图文)
  15. 微信公众平台开发-OAuth2.0网页授权(含源码)
  16. PyTorch官方中文文档:自动求导机制
  17. gem 安装问题
  18. hyperledge vagrant docker development environment
  19. 10.15 JS日记
  20. Spring框架的事务管理的基本概念

热门文章

  1. 【题解】 洛谷 P2649 游戏预言
  2. 05-树8 File Transfer (25 分)
  3. UE4的多线程
  4. Android Studio 之 数据存活【2】,返回桌面切换回来,内容还保存着
  5. 20175211 《实验三 敏捷开发与XP实践》实验报告
  6. IIS 7中添加匿名访问FTP站点
  7. jdk 6-13最有价值新特性总结
  8. 防止同一IP多次请求攻击
  9. 行车记录仪 MyCar Recorder (转)
  10. docker build提示error checking context:can't stat xxx