aoxg2019
V2EX  ›  Java

redission 客户端 pod,cpu100%.心跳检测中,出现了 RedisTimeOutException 后,就会导致 CPU 跳升 25%,大概两个小时跳一次,4 此后就到 100%了

  •  
  •   aoxg2019 · Mar 17, 2025 · 5965 views
    This topic created in 599 days ago, the information mentioned may be changed or developed.
    如下图,很有规律,不知道因为什么原因莫名的导致 cpu 暴涨,但是其他机房的 pod,或者说同机房的 pod 却一切正常,应用内只有一个分布式锁的应用,有应用到 leaseTime,应该时没有 watchDog 的,redission 的后台检车线程猜测来看只有心跳检测.不明白的心跳失败后为何 cpu 的暴涨如此有规律.还望有大佬解答.
    18 replies  •  2025-03-18 11:56:04 +08:00
    itechify
    itechify
    Mar 17, 2025
    1
    4 个核,每次一个核心跑满?
    aoxg2019
    aoxg2019
    OP
    Mar 17, 2025 via Android
    2
    @oneisall8955 确实是 4 个 c.不太明白为啥心跳线程失败后会导致 cpu 被用完
    fj19
    fj19
    Mar 17, 2025
    3
    有定时任务吧
    LiaoMatt
    LiaoMatt
    Mar 17, 2025
    4
    会不会是用 while true 来拿分布式锁了
    itechify
    itechify
    Mar 17, 2025
    5
    @aoxg2019 #2 考虑某个线程 while true 或者扫描全量 keys 或 scan 模糊查询之类的
    aoxg2019
    aoxg2019
    OP
    Mar 17, 2025 via Android
    6
    @fj19 定时任务应用层面没有,redisson 有心跳任务
    aoxg2019
    aoxg2019
    OP
    Mar 17, 2025 via Android
    7
    @LiaoMatt @oneisall8955 用的 lock.tryLock(0,3,second)这个方式去抢锁。整个应用就这么这个地方用到了 redisson 客户端,其他地方没有用 redis 的
    litchinn
    litchinn
    Mar 17, 2025
    8
    跑个火焰图,用 arthas 查看下线程情况,观察下 GC 情况
    hwdq0012
    hwdq0012
    Mar 17, 2025
    9
    pod 是指 kubernetes 的 pod 吗,如果是不是可以进入 Pod 的 shell 吗,在里面用 gdb 分析一下
    cccb
    cccb
    Mar 17, 2025
    10
    哥你名字和 ip 全漏了
    listen2wind
    listen2wind
    Mar 17, 2025
    11
    @cccb 看名字应该是个姐
    itechify
    itechify
    Mar 17, 2025
    12
    @listen2wind 敏字,哥姐都能用吧
    aoxg2019
    aoxg2019
    OP
    Mar 17, 2025 via Android
    13
    @litchinn 线上不允许用这些检测工具
    aoxg2019
    aoxg2019
    OP
    Mar 17, 2025 via Android
    14
    @hwdq0012 pod 已经呗 kill 了
    itechify
    itechify
    Mar 17, 2025
    15
    额,原来是客户端,java 的 pod 100% 呀,那本地复现下,线程 dump ,看线程状态,或许是下面的原因:

    https://github.com/redisson/redisson/issues/6153

    https://www.cnblogs.com/macho8080/p/18628542
    zhady009
    zhady009
    Mar 17, 2025
    16
    先看其他环境能不能复现好做验证和收集额外运行时的信息,然后需要确定是哪个线程搞鬼,用 JFR 去记录然后 dump 一下,如果是 Redisson 的问题不想动脑子就先升级版本试试
    conn457567
    conn457567
    Mar 17, 2025 via Android
    17
    这个问题在我们生产环境快一年了。。升级到 resission 最新版本试试,他们上上周出了一个新版本解决这个问题
    Cruzz
    Cruzz
    Mar 18, 2025❤️1
    18
    看其他环境能不能复现吧,能复现问题就能解决一大半。生产有些工具你都用不了,只能猜,太影响排查了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5598 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 404ms · UTC 02:31 · PVG 10:31 · LAX 18:31 · JFK 21:31
    ♥ Do have faith in what you're doing.