V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
7911364440
V2EX  ›  Java

请教一个请求莫名其妙被阻塞的问题

  •  
  •   7911364440 · 2022-11-02 15:39:50 +08:00 · 1291 次点击
    这是一个创建于 786 天前的主题,其中的信息可能已经有所发展或是发生改变。

    功能的逻辑很简单,大概是这样的:

    1. 用户提交请求后
    2. 后端执行select count(*) from xxx语句
    3. 返回响应

    日志大概是这样的:

    2022-10-13 09:58:56,303 INFO [xxx] - <开始执行 COUNT>  -- 出现问题的请求开始
    ... --期间有很多其它请求可以正常处理
    2022-10-13 10:11:11,839 INFO [xxx] - <COUNT 执行完毕>  -- 出现问题的请求结束(被阻塞了 10 多分钟,最终请求还是执行完了)
    2022-10-13 10:11:11,886 INFO [xxx] - <开始执行 COUNT>  -- 用户提交的第二次请求开始
    2022-10-13 10:11:12,745 INFO [xxx] - <COUNT 执行完毕>  -- 用户提交的第二次请求结束 (只用了 1 秒)
    
    • 这几条 count(*)语句只需要 1 秒左右就可以执行完
    • 请求被阻塞期间,其它请求是可以正常处理的,应该跟 JVM 无关
    • 数据库用的是 Oracle 。
    • 想问下可能导致这类问题出现的原因?或者排查方向?
    6 条回复    2022-11-09 09:08:07 +08:00
    oceanthe1h
        1
    oceanthe1h  
       2022-11-02 15:51:21 +08:00
    是不是连接数被限制了
    Kontinue
        2
    Kontinue  
       2022-11-02 15:51:40 +08:00
    在等锁?
    RedBeanIce
        3
    RedBeanIce  
       2022-11-02 20:01:18 +08:00   ❤️ 1
    1 ,可以先用 arthas 分析一下是哪一行阻塞导致的
    2 ,找到哪一行之后,,再进行分析,是 mysql ,还是其他的。
    lff0305
        4
    lff0305  
       2022-11-03 06:42:35 +08:00 via Android   ❤️ 1
    jstack 看下卡在哪里了,

    六七年前在客户的环境遇到过一样的问题
    原因是 Oracle 连接的时候 Secure Random 类在获得真随机数的时候被阻塞了(只在客户的虚拟化环境出现,其它环境无法重现)
    fwrq41251
        5
    fwrq41251  
       2022-11-03 14:57:15 +08:00
    oracle 没有 PROCESSLIST 吗
    ChenSino
        6
    ChenSino  
       2022-11-09 09:08:07 +08:00
    @lff0305 我遇过这个,在 Linux 下,因 Secure Random springcloud 项目启动要十来分钟,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5378 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:14 · PVG 16:14 · LAX 00:14 · JFK 03:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.