• 欢迎访问本站,本站记录博主日常编程遇到的问题,知识,惊奇软件等。如有问题还请留言


    Deprecated: strip_tags(): Passing null to parameter #1 ($string) of type string is deprecated in /www/wwwroot/gschaos.club/wp-content/themes/Git-alpha-6h0SRk/header.php on line 294

求解 springboot+mysql 随机出现的异常延迟

java mysticalycc 12个月前 (09-14) 419次浏览 已收录 0个评论

求解 springboot+mysql 随机出现的异常延迟

两行紧挨着的代码,很简单的根据 id 更新一行数据,然后打印函数执行到此时的耗时

求解 springboot+mysql 随机出现的异常延迟

打印出来的日志如下

求解 springboot+mysql 随机出现的异常延迟

正常情况下两个打印出来的耗时差值应该是 10ms 以内
但是每天会随机出现几个时间点,两个耗时差值会大于 1s 甚至 10 ~ 20s
日志中可以看到并不是语句执行出现耗时,mybatis 已经把执行结果打印出来了
耗时出现在语句执行之后,但是出现结果之后应该就立即到打印日志了,这之间没有其他代码了,没明白这个延时是怎么产生的,求助


me1onsoda你这样算时间是极不靠谱的,编译器会对指令重排序
Plumes不只是看日志打印的时间数据,最近看每天的 16:10 分大概率会出现这个情况,这个时候去测试请求接口,也验证了确实会出现接口高延迟
31415926535x测试环境可重试的话,尝试用 arthas 抓一下看看是哪个方法的问题
v2hh是不是那个时间点数据库连接池占满了
Plumes但是语句不是已经执行完了吗,这个时候连接池满也会有影响吗?
hubqin会不会集群或网络里面有两个 mysql 实例,形成了负载均衡,其中一个是性能较差的
Plumes内部系统,所以是内网部署的单实例数据库
JYii代码硬看不出问题的话,看一下时段的主机、服务、数据库的情况
sagaxu把 GC 日志也开了,full gc 也会引起类似情况。既然是每天的 16:10 分左右,那要排查下四点之后有没有计划任务,不局限于这个进程。
trzzzz如果 op 用的 druid ,可能耗时在 druid 的获取连接和归还连接那边。jstack 配合 arthas 抓一下吧
mark2025备份进程导致高 io ?
falsemask1.数据库用了连接池吗? 2.更新会有行锁吗?
babyrjw应该是有其他大事务把 id=220269386 这条记录锁住了。 锁住的可能有几种,update 的条件命中 id=220269386 或者 lock_status = 4 或者 lock_etime=1726041977 都会锁住这条记录,可以看一下慢查询日志
Plumes日志里已经出现 updates: 1 ,按照我的理解这应该已经完成提交了吧,查了数据库的 binlog ,也看到已经很快 commit 了
babyrjw是的,那考虑下是不是 10 楼说的归还连接 以及 fullgc 影响
siweipancc给你个极端的原因,定期 roll 日志文件的时候 io 塞住了
cheng6563随机卡,还一卡卡那么久,考虑是随机数生成器问题了. -Djava.security.egd=file:/dev/urandom

MysticalYcc , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:求解 springboot+mysql 随机出现的异常延迟
喜欢 (0)
mysticalycc
关于作者:
简短的个人签名

Warning: Attempt to read property "comment_author_email" on null in /www/wwwroot/gschaos.club/wp-content/themes/Git-alpha-6h0SRk/comments.php on line 47
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到