Jedis 在高并发情况下调用 redis 返回数据很慢,有遇到过吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
x537196
V2EX    Java

Jedis 在高并发情况下调用 redis 返回数据很慢,有遇到过吗?

  •  
  •   x537196 2016-09-19 16:01:00 +08:00 11586 次点击
    这是一个创建于 3311 天前的主题,其中的信息可能已经有所发展或是发生改变。

    java 在高并发情况下调用 redis 返回数据很慢,一个命令执行 200+ms, 低并发正常情况下 10+ms ,有遇到过吗? 主要耗时就在 JedisPool.getResource()这个操作上

    第 1 条附言    2016-09-20 10:10:48 +08:00
    昨天在 github 上提了 issues 询问后,因为有多种原因造成这种情况,所以也没有确切的答案,
    现在监测到高峰时段,网卡跑满,今天尝试加一台服务器,看有没有缓解的情况
    17 条回复    2016-10-03 18:06:06 +08:00
    6IbA2bj5ip3tK49j
        1
    6IbA2bj5ip3tK49j  
       2016-09-19 16:25:08 +08:00   1
    我猜一下,应该是有连接池的。
    高并发下池满了,获取连接需要等待。时间就耗在这儿了。可以调一下最大连接数量试试。
    x537196
        2
    x537196  
    OP
       2016-09-19 17:55:18 +08:00
    @xgfan 最大连接数已经设置为无上限了
    cvv
        3
    cvv  
       2016-09-19 21:18:59 +08:00   1
    WhenExhaustedAction 怎么设的
    rrfeng
        4
    rrfeng  
       2016-09-19 21:27:53 +08:00   1
    JedisPool.getResource()
    新建连接可能达到了某种隐形的限制。例如 socket 数量, fd , nofile 等等所以 poolsize 虽然没有上限,但是达到一定量之后自然就会资源不足。

    先看看 pool 有多少连接,或者系统里 ss/netstat 看下程序一共有多少个 redis 连接。
    fxmqs
        5
    fxmqs  
       2016-09-19 21:40:10 +08:00   1
    @x537196 确实碰到过,个别请求 50 多 ms ,但大部分没问题,当时统计大概在 2%左右,因为不影响业务,所以没跟踪了。
    9hills
        6
    9hills  
       2016-09-19 22:05:03 +08:00 via iPhone   1
    做压测,然后观察各种指标。只有这个信息不太好判断。
    zts1993
        7
    zts1993  
       2016-09-19 22:17:55 +08:00   3
    今天在 jedis 上发 issue 的是你吧。。。


    我看到了。 JedisPool.getResource() 是因为你设置了 testOnBorrow 。这个会发一个 ping 然后 ping 卡住了。
    卡住的原因还是 redis 阻塞了,比如大量 smemebers 或者 lrange 这样。

    具体可以发一下 redis 的 slowlog 。看一下卡顿和长时间操作是否一致。
    yonka
        8
    yonka  
       2016-09-20 09:55:36 +08:00   1
    应该不是连接耗尽吧? redis 一个正常请求占用连接的时间应该在个位 ms ,你的高并发得有多少啊?
    x537196
        9
    x537196  
    OP
       2016-09-20 10:06:13 +08:00
    @cvv 这个应该是默认的
    x537196
        10
    x537196  
    OP
       2016-09-20 10:08:01 +08:00
    @rrfeng redis 连接数在 200 左右,高峰期到过 600 ,没有到过最大连接数
    x537196
        11
    x537196  
    OP
       2016-09-20 10:14:22 +08:00
    @zts1993 redis 是使用的阿里云的实例,只能找阿里的人看日志了,现在已经把列表类的 key 转到另一个实例,单键值的 key 已经转移到 memcached 了,现在只能各种原因排查了
    x537196
        12
    x537196  
    OP
       2016-09-20 10:16:24 +08:00
    @fxmqs 我这个波动比较大
    x537196
        13
    x537196  
    OP
       2016-09-20 10:19:14 +08:00
    @yonka redis 是没有问题的,就是 jedis 这边,可能是有哪个操作阻塞了,或者网络原因,导致了这个情况,现在排查中
    xchange
        14
    xchange  
       2016-09-20 11:03:30 +08:00   1
    @x537196 说不定是阿里云的问题,前天晚上我们的 redis cluster 挂了,然后昨天另外的 redis 实例部分 value 长度比较大的 key 取不出来……
    Infernalzero
        15
    Infernalzero  
       2016-09-20 12:11:12 +08:00   1
    你都发现时网卡跑满那原因都很明显了,序列化后存储体积过大,网络拥塞了所以慢,压缩下再存吧
    x537196
        16
    x537196  
    OP
       2016-09-20 12:42:41 +08:00
    @Infernalzero 网卡跑满是大部分是其他业务的流量, redis 的很少
    iminto
        17
    iminto  
       2016-10-03 18:06:06 +08:00
    jedis 本身性能问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1059 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 174ms UTC 18:25 PVG 02:25 LAX 11:25 JFK 14:25
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86