今天ELK收集日志的时候,发现收集失败,查找各方面原因,最后在redis日志里面发现报错:
[2489] 02 Jun 10:43:42 # Error allocating resoures for the client

错误是无法为客户端分配资源,查看redis连接数:
# redis-cli info | grep connected        
connected_clients:5036
connected_slaves:0

客户端的连接竟然有达到5000多

查看客户端连接情况:
redis 127.0.0.1:6379> client list 
addr=10.247.64.115:52834 fd=5 idle=2144 flags=N db=0 sub=0 psub=0 qbuf=0 obl=0 oll=0 events=r cmd=rpush 
addr=127.0.0.1:38484 fd=7 idle=0 flags=N db=0 sub=0 psub=0 qbuf=0 obl=0 oll=0 events=r cmd=blpop 
addr=10.105.1.2:53125 fd=8 idle=2144 flags=N db=0 sub=0 psub=0 qbuf=0 obl=0 oll=0 events=r cmd=rpush 
addr=10.105.1.3:32639 fd=9 idle=2144 flags=N db=0 sub=0 psub=0 qbuf=0 obl=0 oll=0 events=r cmd=rpush 
addr=10.105.1.4:57134 fd=10 idle=2144 flags=N db=0 sub=0 psub=0 qbuf=0 obl=0 oll=0 events=r cmd=rpush 
addr=10.105.1.5:53126 fd=11 idle=2144 flags=N db=0 sub=0 psub=0 qbuf=0 obl=0 oll=0 events=r cmd=rpush 
addr=10.105.1.7:8887 fd=12 idle=2144 flags=N db=0 sub=0 psub=0 qbuf=0 obl=0 oll=0 events=r cmd=rpush

每个字段含义如下:
addr:客户端的地址和端口 
fd:套接字所使用的文件描述符 
idle:以秒计算的空闲时长 
flags:客户端 flag 
db:该客户端正在使用的数据库 ID 
sub:已订阅频道的数量 
psub:已订阅模式的数量 
multi:在事务中被执行的命令数量 
qbuf:查询缓冲区的长度(字节为单位, 0 表示没有分配查询缓冲区) 
qbuf-free:查询缓冲区剩余空间的长度(字节为单位, 0 表示没有剩余空间) 
obl:输出缓冲区的长度(字节为单位, 0 表示没有分配输出缓冲区) 
oll:输出列表包含的对象数量(当输出缓冲区没有剩余空间时,命令回复会以字符串对象的形式被入队到这个队列里) 
omem:输出缓冲区和输出列表占用的内存总量 
events:文件描述符事件 
cmd:最近一次执行的命令

发现客户端的idle空闲时长太长,连接池维持了太多的连接,需要将不用的连接及时释放掉:
redis 127.0.0.1:6379> CONFIG SET timeout 30
OK

再次查看连接:
# redis-cli info | grep connected 
connected_clients:1137
connected_slaves:0

连接数大量下降

查看连接的具体情况
redis 127.0.0.1:6379> client list 
addr=127.0.0.1:38484 fd=7 idle=0 flags=N db=0 sub=0 psub=0 qbuf=0 obl=0 oll=0 events=r cmd=blpop 
addr=10.105.1.150:39742 fd=269 idle=29 flags=N db=0 sub=0 psub=0 qbuf=0 obl=0 oll=0 events=r cmd=rpush 
addr=10.105.1.226:53291 fd=5 idle=31 flags=N db=0 sub=0 psub=0 qbuf=0 obl=0 oll=0 events=r cmd=rpush

idle的时间已经限制在30秒了

redis未设置idle超时时间导致连接过多的更多相关文章

  1. httpclient: 设置请求的超时时间,连接超时时间等

    httpclient: 设置请求的超时时间,连接超时时间等 public static void main(String[] args) throws Exception{ //创建httpclien ...

  2. 【开源项目13】Volley框架 以及 设置request超时时间

    Volley提供了优美的框架,使android程序网络访问更容易.更快. Volley抽象实现了底层的HTTP Client库,我们不需关注HTTP Client细节,专注于写出更加漂亮.干净的RES ...

  3. 【轮询】【ajax】【js】【spring boot】ajax超时请求:前端轮询处理超时请求解决方案 + spring boot服务设置接口超时时间的设置

    场景描述: ajax设置timeout在本机测试有效,但是在生产环境等外网环境无效的问题 1.ajax的timeout属性设置 前端请求超时事件[网络连接不稳定时候,就无效了] var data = ...

  4. C# 的tcp Socket设置自定义超时时间

    简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP ...

  5. WebLogic如何设置session超时时间

    1.web.xml  设置WEB应用程序描述符web.xml里的<session-timeout>元素.这个值以分钟为单位,并覆盖weblogic.xml中的TimeoutSecs属性   ...

  6. Mybatis设置sql超时时间

    开始搭建项目框架的时候,忽略了sql执行超时时间的问题. 原本使用.net开发是,默认的超时时间是30s,这个时间一般一般sql是用不到的,但也不排除一些比较复杂或数据量较大的sql. 而java中, ...

  7. WebSphere设置会话超时时间

    WebSphere Application Server的会话超时时间可以在三个层面进行设置,分别为:应用程序服务器级别.应用程序级别和代码层面进行设置. 设置方式:应用程序级别级别和应用级别可以通过 ...

  8. integrator.setTimeout 设置一个超时时间,超过这个时间之后,扫描的 Activity 将会被 finish 。

    integrator.setTimeout 设置一个超时时间,超过这个时间之后,扫描的 Activity 将会被 finish . +++++++++++++++++++ 经查,没有这个功能

  9. subprocess如何设置命令超时时间

    一.subprocess如何设置命令超时时间 最近遇到一个问题,就是我需要在服务器上执行某些shell命令,但是有些命令失败的时候是不会自动终止的,只会一直停在那里,很耗时间. 因此想到了设置超时时间 ...

随机推荐

  1. 1122 django属性操作orm字段数据操作

    目录 1. 静态文件的配置 手动静态文件的访问资源 静态文件的动态绑定 2.request方法 2.1 请求方式 2.2 获取前端的请求方式 request.method 2.3 request方法 ...

  2. fsLayuiPlugin树+数据表格使用

    fsLayuiPlugin 是一个基于layui的快速开发插件,支持数据表格增删改查操作,提供通用的组件,通过配置html实现数据请求,减少前端js重复开发的工作. GitHub下载 码云下载 测试环 ...

  3. Swap Without Extra Variable

    Given two variables, x and y, swap two variables without using a third variable.   Example Given x = ...

  4. kalilinux MSF数据库的连接

    需要自动连接数据库.如下设置.

  5. 51nod 1459 & 1212

    1459 双限制最短路 #include <stdio.h> #include <iostream> #include <vector> #include < ...

  6. Hello 2019题解

    Hello 2019题解 题解 CF1097A [Gennady and a Card Game] map大法好qwq 枚举每一个的第\(1,2\)位判是否与给定的重复即可 # include < ...

  7. webkit vs v8

    我们知道不同浏览器用的不同的渲染引擎: Tridend(IE).Gecko(FF).WebKit(Safari,Chrome,Andriod浏览器) 当然 Chrome 重构了一下 WebKit 然后 ...

  8. pmm的安装,这里推荐下载官方提供的脚本,直接执行这个脚本就可以完成安装

    脚本内容如下: #!/bin/sh set -o errexit set -o xtrace root_is_needed='no' check_command() { command -v &quo ...

  9. Java学习日记基础篇(六)—— 抽象类、接口、final

    抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 public class test1 { pub ...

  10. meshing-风火轮

    原视频下载地址: https://pan.baidu.com/s/1pKVPall 密码: ubwr ​