zoukankan      html  css  js  c++  java
  • 基于keepalived的redis通信链接数测试

    使用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方法似乎是无效的

  • 相关阅读:
    ArcEngine中删除地物点(C#)
    Siliverlight常识
    ArcEngine 中打开数据源的连接 AO学习资料笔记
    第一次执行时没有问题,重复执行会出错、GP循环
    理解 ArcObjects 中的游标
    AO 中关于坐标系统的感想 AO学习资料 阅读
    http://www.chinabzw.com/bzlist/7_1.htm
    Delphi 文件操作(4)Reset
    c 语言指针
    Delphi 获取星期几
  • 原文地址:https://www.cnblogs.com/AI001/p/3996948.html
Copyright © 2011-2022 走看看