[問題] Spring @Transaction 問題

看板java作者 (藍憶)時間6年前 (2018/07/17 11:44), 6年前編輯推噓1(107)
留言8則, 4人參與, 6年前最新討論串1/2 (看更多)
版上先進大家好:   最近使用@Transation 遇到一個很奇怪的問題,範例如下: public void caller(){ log.info("start:{}", LocalDateTime.now()); target.method(); log.info("end:{}", LocalDateTime.now()); } @Transation(timeout = 3) public Object method(){ //do some Logic log.info("process :{}", LocalDateTime.now()); return object; } 執行記錄大概會是 0 -> 11ms -> 20ms 光是做return 就花了快一半的時間,而且在每個整點的00、15、30、45分 有機會會變成 0 -> 11ms -> 2000ms 已經確認沒有系統排程、程式排程、DB排程 初步懷疑是spring AOP的問題,但理論上應該每次都會耗時很高, 沒甚麼道理每15分鐘固定一次,而且不管在哪台機器上都一樣 執行環境為 docker openJDK8 + Spring Boot + spring MVC + spring DATA (JPA、Redis) 有透過JConsole去看過thread 跟 GC 看起來都正常 thread 有defualt initial 因此沒有變化 GC時間約每10分鐘一次,跟00 15 30 45 對不上。 現在找不到任何頭緒或該怎麼檢測,想請問版上先進還有什麼Idea可以測試? 目前有看到transcation commit的時間比較慢…。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.222.110.31 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1531799085.A.9D5.html ※ 編輯: jacky951 (61.222.110.31), 07/17/2018 15:46:54

07/17 19:21, 6年前 , 1F
Redis persistence?
07/17 19:21, 1F

07/17 19:45, 6年前 , 2F
Return 花時間算是正常,畢竟那個時候是在commit
07/17 19:45, 2F

07/17 19:48, 6年前 , 3F
有沒有什麼profiling tools 可以看慢在哪?不然土炮一
07/17 19:48, 3F

07/17 19:48, 6年前 , 4F
點,反正知道什麼時候會出問題,就在那兩秒做幾次thre
07/17 19:48, 4F

07/17 19:48, 6年前 , 5F
ad dump,應該可以看出端倪
07/17 19:48, 5F

07/17 20:30, 6年前 , 6F
先把spring和jpa provider的log都開起來看是慢在哪段吧
07/17 20:30, 6F

07/17 21:02, 6年前 , 7F
稍早的時候有把JPA transcation的log開起來
07/17 21:02, 7F

07/17 21:03, 6年前 , 8F
確定的是commit的時候DB response卡住,但原因不曉得
07/17 21:03, 8F
文章代碼(AID): #1RJMOjdL (java)
討論串 (同標題文章)
文章代碼(AID): #1RJMOjdL (java)