![]() |
1
me1onsoda 2024-09-13 17:35:41 +08:00
你这样算时间是极不靠谱的,编译器会对指令重排序
|
![]() |
2
Plumes OP @me1onsoda 不只是看日志打印的时间数据,最近看每天的 16:10 分大概率会出现这个情况,这个时候去测试请求接口,也验证了确实会出现接口高延迟
|
3
31415926535x 2024-09-13 19:25:53 +08:00
@Plumes 测试环境可重试的话,尝试用 arthas 抓一下看看是哪个方法的问题
|
![]() |
4
v2hh 2024-09-13 19:28:31 +08:00
是不是那个时间点数据库连接池占满了
|
6
hubqin 2024-09-13 20:49:59 +08:00
会不会集群或网络里面有两个 mysql 实例,形成了负载均衡,其中一个是性能较差的
|
![]() |
8
JYii 2024-09-13 21:04:20 +08:00
代码硬看不出问题的话,看一下时段的主机、服务、数据库的情况
|
![]() |
9
sagaxu 2024-09-13 21:11:14 +08:00
把 GC 日志也开了,full gc 也会引起类似情况。既然是每天的 16:10 分左右,那要排查下四点之后有没有计划任务,不局限于这个进程。
|
![]() |
10
trzzzz 2024-09-13 21:15:03 +08:00
如果 op 用的 druid ,可能耗时在 druid 的获取连接和归还连接那边。jstack 配合 arthas 抓一下吧
|
11
mark2025 2024-09-13 21:25:34 +08:00
备份进程导致高 io ?
|
![]() |
12
falsemask 2024-09-13 21:33:09 +08:00
1.数据库用了连接池吗?
2.更新会有行锁吗? |
13
babyrjw 2024-09-13 21:40:37 +08:00
应该是有其他大事务把 id=220269386 这条记录锁住了。
锁住的可能有几种,update 的条件命中 id=220269386 或者 lock_status = 4 或者 lock_etime=1726041977 都会锁住这条记录,可以看一下慢查询日志 |
![]() |
14
Plumes OP @babyrjw 日志里已经出现 updates: 1 ,按照我的理解这应该已经完成提交了吧,查了数据库的 binlog ,也看到已经很快 commit 了
|
![]() |
16
siweipancc 2024-09-14 03:31:32 +08:00 via iPhone ![]() 给你个极端的原因,定期 roll 日志文件的时候 io 塞住了
|
![]() |
17
cheng6563 2024-09-14 09:35:46 +08:00
随机卡,还一卡卡那么久,考虑是随机数生成器问题了.
-Djava.security.egd=file:/dev/urandom |
![]() |
18
Plumes OP @siweipancc 附言里有今天的机器磁盘监控,看上去 16 点左右没什么异常
|
![]() |
20
nealHuang 2024-09-19 10:53:42 +08:00
mark 跟踪一下,有思路麻烦各个吴彦祖踢我一下
|
21
baoshijiagong 364 天前
日志的内容里面耗时这个是当前时间减去 startTime ,startTime 在哪定义的,从截图看并不知道,那么截图里高亮的两个“当前耗时”和“耗时”没有可比性,先忽略。
17.039 的是 updateTagsModuleLibsById 的日志 18.080 的是 updateModuleLibById 的日志 不是两条相邻代码的日志。 updateModuleLibById 方法没有产生 sql 日志。 没有任何不合理之处。 接口延迟,只是 updateModuleLibById 处理时间长了,要查一下这个方法为什么在特定时间,比如刚过 16 点的时候,会有延迟。 |