成都创新互联网站制作重庆分公司

Redisdb连接超时怎么办

小编给大家分享一下redis db连接超时怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联公司是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:响应式网站、品牌网站设计网络营销推广。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。成都网站设计、成都做网站、外贸网站建设、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。

问题描述:

现象是redis db访问出现超时。

问题分析:

网络流量出现瓶颈,访问变慢。

  • [machine1 ~]$ ping 192.168.10.66

  • PING 192.168.10.66 (192.168.10.66) 56(84) bytes of data.

  • 64 bytes from 192.168.10.66: icmp_seq=1 ttl=64 time=17.7 ms

  • 64 bytes from 192.168.10.66: icmp_seq=2 ttl=64 time=17.2 ms

  • Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 0

  •   Queueing strategy: fifo

  •   Output queue: 0/40 (size/max)

  •   5 minute input rate 874639000 bits/sec, 85931 packets/sec –网络流量每秒800m bit

  •   5 minute output rate 47017000 bits/sec, 75274 packets/sec

  •      96257027404 packets input, 21537684106526 bytes, 0 no buffer

  •      Received 70287596 broadcasts (69442689 multicasts)

主机的网卡流量也达到了瓶颈。

redis主机的某些实例内存也开始报警,超过90%。

停止中间件应用后,发现问题还是没有解决,网络流量依旧很高。

将redis db切换到备机后,系统恢复,网络流量下降。redis db从库的内存使用率很低。

发生问题时当时主库的内存最高是14g,但是从库的内存才1.9g。那主库的内存占用是从哪里来的呢?

根据网络同事的反馈,网络请求的大小大概也就几十个字节,但是输出的大小每次达到了几M。

Redis输出缓冲区可能占用大量的内存空间,这和oracle的pga内存非常类似,每个oracle会话会独立分配一个内存区域。那么继续看看本案例是否也是输出缓冲区内存占用过多。查看zabbix相关指标,发现client_longest_output_list的确有增加。应该是输出缓冲区占用内存较大,也就是有大量的数据

从Redis服务器向某些客户端输出。


查看当时的日志,有omem比较大的情况。

  • id=411550 addr=172.24.1.30:34542 fd=280 name= age=2 idle=1 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=9

  • omem=237928 events=rw cmd=lrange

后续从slowlog中也发现有返回数据较多的操作。

  • [machine1 ~]$redis-cli -p 6500 slowlog get 10

  • 1) 1) (integer) 2245

  •     2) (integer) 1460002216

  •     3) (integer) 23236

  •     4) 1) "SMEMBERS"

  •        2) "prdkey1"

一次获取9075多个元素。

  • 127.0.0.1:6410> scard prdkey1

  • (integer) 9075


经过和开发一起分析,类似于Oracle中的数据倾斜,redis的某个分片上返回的数据很大,导致服务器向客户端发送数据的buffer的积压。后续开发将这些数据分批取出,并放到JVM中进行缓存。

以上是“Redis db连接超时怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


本文题目:Redisdb连接超时怎么办
链接分享:http://cxhlcq.com/article/jdisgs.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部