基于keepalived的redis通信链接数测试

原创 2013年12月02日 15:08:56

使用keepalived做负载均衡后发现了一个问题

作为realserver的redis服务器上有许多打开的监听连接长久时间的不关闭

做个测试,检查下问题的所在

初步判断是和客户端使用redis链接的方式有关

其次是由于网络波动造成的连接中断,由于keepalived的原因无法关闭realserver上被中断的tcp连接

以下实验均没有在redis设置客户端连接超时时间


连接池模式

连接池模式下redis服务器上连接数比较恒定,增长速度较慢

一、首先采用直连的方式,客户端采用连接池方式,直接和redis服务器通信,通过制造异常和插拔网线强制中断连接

a、正常通信连接池模式:

开启多个进程,然后关闭进程。如果redis设置了客户端连接超时时间,则等待响应的时间超时。标定连接运行的正常状态下变化。多进程,正常读写。停止网站服务后,redis服务器上的连接自动释放。

b、不正常通信连接池模式:

多进程,主动抛出异常。停止网站服务后,redis服务器上的连接自动释放。

c、不正常网络模式:

开启多个进程,然后关闭进程,不抛出异常。以插拔网线模拟网络波动。

(1)在插上网线后重启网站服务,redis服务器上的连接自动释放。

(2)重启网站服务后插上网线,redis服务器上的连接不自动释放。

二、通过keepalived的方式,客户端采用连接池方式,直接和redis服务器通信,通过制造异常和插拔网线强制中断连接

a、正常通信连接池模式:

开启多个进程,然后关闭进程。如果redis设置了客户端连接超时时间,则等待响应的时间超时。标定连接运行的正常状态下变化。多进程,正常读写。停止网站服务后,redis服务器上的连接自动释放。

b、不正常通信连接池模式:

多进程,主动抛出异常。停止网站服务后,redis服务器上的连接自动释放。

c、不正常网络模式:

(1)在插上网线后重启网站服务,redis服务器上的连接自动释放。

(2)重启网站服务后插上网线,redis服务器上的连接不自动释放。


非连接池模式

此模式下redis服务器上连接数增长快速

一、首先采用直连的方式,客户端采用连接池方式,直接和redis服务器通信,通过制造异常和插拔网线强制中断连接

a、正常通信连接池模式:

开启多个进程,然后关闭进程。如果redis设置了客户端连接超时时间,则等待响应的时间超时。标定连接运行的正常状态下变化。多进程,正常读写。停止网站服务后,redis服务器上的连接自动释放。但是不重启网站服务的话连接会一直保持

b、不正常通信连接池模式:

多进程,主动抛出异常。停止网站服务后,redis服务器上的连接自动释放。

c、不正常网络模式:

开启多个进程,然后关闭进程,不抛出异常。以插拔网线模拟网络波动。

(1)在插上网线后重启网站服务,redis服务器上的连接自动释放。

(2)重启网站服务后插上网线,redis服务器上的连接不自动释放。

二、通过keepalived的方式,客户端采用连接池方式,直接和redis服务器通信,通过制造异常和插拔网线强制中断连接

a、正常通信连接池模式:

开启多个进程,然后关闭进程。如果redis设置了客户端连接超时时间,则等待响应的时间超时。标定连接运行的正常状态下变化。多进程,正常读写。停止网站服务后,redis服务器上的连接自动释放。但是不重启网站服务的话连接会一直保持

b、不正常通信连接池模式:

多进程,主动抛出异常。停止网站服务后,redis服务器上的连接自动释放。

c、不正常网络模式:

(1)在插上网线后重启网站服务,redis服务器上的连接自动释放。但是会有少数几个释放不掉

(2)重启网站服务后插上网线,redis服务器上的连接不自动释放。


结论:

1.redis客户端最好使用连接池模式

2.网络波动会造成大量连接进入半连接状态,长久处于监听状态

3.在redis服务端需要对客户端连接设置超时时间

4.redis客户端的Dispose方法似乎是无效的

版权声明:本文为博主原创文章,未经博主允许不得转载。

我的redis+keepalived主从自动切换配置脚本

echo "192.168.0.246 redismaster" >> /etc/hosts echo "192.168.0.249 redisslave" >> /etc/hosts ech...
  • xiaocao12
  • xiaocao12
  • 2016年06月07日 10:53
  • 791

keepalived+redis 高可用redis主从解决方案

keepalived+redis 高可用redis主从解决方案 背景介绍: 目前,Redis还没有一个类似于MySQL Proxy或Oracle RAC的官方HA方案。 #Redis 2.8版开始正式...
  • huwei2003
  • huwei2003
  • 2014年12月12日 15:28
  • 17369

Redis + Keepalived主从集群的搭建及故障转移

Redis + Keepalived主从集群的搭建及故障转移设计思路: 当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby; 当 Master 挂掉,...
  • ECHO_FOLLOW_HEART
  • ECHO_FOLLOW_HEART
  • 2016年06月06日 14:22
  • 2040

KeepAlived+Redis | 高可用 | 主从复制 | 健康检查 | 故障自动切换

本文讲解如何使用KeepAlived配合健康检查脚本来配置Redis高可用(主从数据同步,故障自动切换)。 PS:在使用前请先安装好KeepAlived Redis等相关软件,需要设置为系统服务,但不...
  • nimasike
  • nimasike
  • 2016年09月09日 17:39
  • 1526

redis+keepalived高可用实战,亲测已成功

192.168.2.180:redis1 keepalived-master 192.168.2.181:redis2 keepalived-slave 192.168.2.222:VIP ...
  • wangdaoge
  • wangdaoge
  • 2016年08月31日 14:36
  • 1735

一步一步搭建Redis + Keepalived主从高可用之Keepalived安装配置(三)

开心一笑【我:“屎克郎,你不是移‍民了吗?怎么又回来了?”屎克郎:“再不回来,就饿死了!”我:“怎么会这样子!”屎克郎:“那是一个鸟不拉屎的地方!”】提出问题**如何安装keepalived???解决...
  • huangwenyi1010
  • huangwenyi1010
  • 2016年10月08日 23:08
  • 983

Redis主从配置及使用KeepAlived实现Redis高可用

一:环境介绍 Master: 172.16.206.29 Slave: 172.16.206.28 Virtural IP Address (VIP): 172.16.206.250 二:...
  • imxiangzi
  • imxiangzi
  • 2016年09月01日 16:24
  • 650

SUSE11环境下Redis+Keepalived实现高可用技术

Redis服务器部署 1.Redis配置信息 Redis部署使用两台服务器,实现Redis+keepalived,提供redis服务高可用,当主redis进程或服务器宕机之后,备redis进程或服...
  • yanglyue
  • yanglyue
  • 2017年04月07日 10:22
  • 701

Keepalived实现redis的主从切换高可用原理详解

通过keepalived的自定义脚本功能监控本机的redis服务状态,当监控脚本检测到redis服务出现异常时,则改变本机keepalived的优先级,同时这会导致master/backup角色的变化...
  • blog_liuliang
  • blog_liuliang
  • 2016年10月12日 16:45
  • 1080

Keepalived+nginx+redis主从+tomcat一机多实例实现会话共享

### keepalived配置 ### nginx安装培训 - 安装nginx 1 2 3 ``` cpp yum in...
  • oufua
  • oufua
  • 2015年10月22日 21:26
  • 822
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于keepalived的redis通信链接数测试
举报原因:
原因补充:

(最多只允许输入30个字)