redis占用高内存导致的socket连接失败

Posted 疯子峰@自律给我自由

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis占用高内存导致的socket连接失败相关的知识,希望对你有一定的参考价值。

最近在搞ELK日志平台,部署filebeat收集日志时(输出到redis),出现了经典的【连接被目标机器积极拒绝】异常,

1)环境配置:

  开发机,开发服务机(开发机上的virtualbox虚拟机,启动了ELK服务)、测试机、测试服务机(ELK)

2)本机(开发机)使用可输出日志到开发服务机 + 测试服务机

3)测试机可输出日志到开发服务机,配置为测试服务机则提示

【2017-04-07T13:39:52+08:00 ERR Connecting error publishing events (retrying): dial tcp 192.168.78.51:6379: connectex: No connection could be made because the target machine actively refused it.】

 

分析过程如下:

1)测试机上检查端口是否可用:telnet 192.168.78.51 6379,果然无法连接。

2)开发机上检查端口是否可用:telnet 192.168.78.51 6379,可以连接。

3)怀疑测试机上防火墙问题,关闭防火墙后还是连不上。

4)测试机上连接其他端口:telnet 192.168.78.51 22,居然可以连接

5)检查测试服务机:内存占用大

6)检查redis:居然有1千万条消息待处理

7)重启logstash读取消息后,测试机上telnet正常,收集日志成功。

8)几分钟后,错误又出现了。

9)测试机【192.168.78.177】上问题如下:

  a. 与测试服务机【78.51】在同一网段

  b. 测试机上telnet 另外一台服务器正常. telnet 192.168.78.52 1521 

  c. 执行b步骤后,再执行 telnet 192.168.78.51 6379 有可能成功

  d. 无论是否执行b,执行 telnet 192.168.78.51 22 都成功

待续。。。。

 

以上是关于redis占用高内存导致的socket连接失败的主要内容,如果未能解决你的问题,请参考以下文章

Redis 故障排查「连接失败问题排查和解决」带你总体分析CPU及内存的使用率高问题排查指南及方案

如何解决memcached连接数过高导致后续连接失败的问题

Redis 故障排查「连接失败问题排查和解决」带你总体分析CPU及内存的使用率高问题排查指南及方案

redis 高并发导致无法连接处理

c# .net core使用Hangfire组件来管理自动定时任务,连接的是redis服务,现在问题是占用内存太大

java怎样配置redis占用多大内存