成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

記一次現網內存泄漏問題排查和分析

開發 開發工具
進入 APM 監控系統查看實例內存情況,把時間線拉長到一天,可以看到內存有緩慢上升趨勢,初步懷疑有內存泄漏。

本文轉載自微信公眾號「愛笑的架構師」,作者雷小帥。轉載本文請聯系愛笑的架構師公眾號。

大家好,我是雷小帥!大家春節過得咋樣,反正我是挺崩潰的。本來給自己列了好多計劃,最終的執行效果是這樣的:

  • 寫幾篇技術文章
  • 看幾本技術書籍

爽快玩了幾天,走親戚,看電影

哈哈,既然過年沒好好學習,那只有熬夜趕作業了。

今天這篇文章帶大家分析一個內存異常的問題,也算是新年的第一篇技術文章了,開工大吉~~~

我們有個新服務上線運行一段時間后,老是出現堆內存不足,大量出現 Full GC,有些實例甚至出現內存溢出錯誤:

java.lang.OutOfMemoryError: Java heap space

但是為什么會內存溢出呢?按說訪問量也不是很高,于是進行了下面的排查和分析。

1、懷疑內存泄漏

進入 APM 監控系統查看實例內存情況,把時間線拉長到一天,可以看到內存有緩慢上升趨勢,初步懷疑有內存泄漏。

2、Heap Dump

獲取到機器ip,聯系運維人員去機器上把堆dump下來,dump命令:

/xxx/jdk1.8.0_212/bin/jmap -dump:live,format=b,file=/xxx/xxx.hprof  進程號

將堆dump文件 Xxx.hprof 下載到本地。

3、下載Heap Dump分析工具

常用的分析工具有MAT和JProfile,本文以MAT工具為示例進行分析。工具下載鏈接如下:

??https://www.eclipse.org/mat/downloads.php??

注意:如果你本地安裝的是JDK11+,下載最新的即可;如果你本地安裝的是JDK8,建議下載1.9.2版本。

4、將Dump文件導入MAT工具

MAT是eclipse的一個插件,免安裝,雙擊打開即可使用。

打開下載好的dump文件

5、分析Dump文件

打開內存泄漏懷疑分析報告,可以看到 SessionFactoryImpl 這個對象使用了 149M內存,占總內存的25%,這肯定不正常。

SessionFactoryImpl 這個類是跟數據庫相關,服務代碼中使用了JPA作為持久層框架,應該是跟JPA相關,繼續往下分析。

我們打開內存樹,往下挖,可以看到 QueryPlanCache 這個對象占用內存比較大。

QueryPlanCache 表面的意思是:查詢計劃緩存。用google查一下具體含義。

簡單來說Hibernate會緩存sql語句以減少重復編譯,便于直接命中提高效率。

在使用 SQL in 的時候,如果 in 后的參數不同,hibernate會把其當成不同的sql進行緩存,從而緩存大量的sql。

緩存的大小是多少?查了一下官方文檔,如果不配置,這個緩存默認最大值為2048 。

Stack Overflow上也有用戶反饋這個問題:

https://stackoverflow.com/questions/31557076/spring-hibernate-query-plan-cache-memory-usage

7、分析結論

drawio服務里面有大量的 sql in 語句,in 后面的參數不一樣造成Hibernate緩存了大量SQL語句,占用大量的堆內存。

8、解決措施

(1)添加配置參數,限制緩存大小

參數解釋:

https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#configurations-query

(2)提高 sql in 的緩存效率

參數解釋:

https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#configurations-query

責任編輯:武曉燕 來源: 愛笑的架構師
相關推薦

2023-04-06 07:53:56

Redis連接問題K8s

2021-05-13 08:51:20

GC問題排查

2021-11-02 07:54:41

內存.NET 系統

2023-01-04 18:32:31

線上服務代碼

2020-11-02 09:48:35

C++泄漏代碼

2021-03-29 12:35:04

Kubernetes環境TCP

2021-08-19 09:50:53

Java內存泄漏

2021-11-23 21:21:07

線上排查服務

2020-08-27 21:36:50

JVM內存泄漏

2019-02-20 09:29:44

Java內存郵件

2022-09-13 17:46:19

STA模式內存

2017-12-19 14:00:16

數據庫MySQL死鎖排查

2019-03-15 16:20:45

MySQL死鎖排查命令

2022-10-09 10:47:37

NET視覺軟件

2023-04-26 12:48:58

.NET程序類型

2023-07-06 10:11:38

.NET模式dump

2019-09-10 10:31:10

JVM排查解決

2024-04-10 08:48:31

MySQLSQL語句

2022-01-10 09:31:17

Jetty異步處理seriesbaid

2021-04-13 08:54:28

dubbo線程池事故排查
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色毛片免费 | 日本三级全黄三级a | 午夜激情国产 | 免费人成在线观看网站 | 天天天操操操 | 中文字幕在线第二页 | 国产福利在线播放 | 日韩欧美不卡 | 国产精品精品久久久 | 国精产品一品二品国精在线观看 | av 一区二区三区 | 成人网av | 精品欧美激情在线观看 | 欧美三级电影在线播放 | 欧美日韩国产一区二区 | 99热国产精品 | 亚洲成人免费观看 | 在线观看亚洲专区 | 国产激情在线 | 亚洲风情在线观看 | 一本大道久久a久久精二百 欧洲一区二区三区 | 99精品久久99久久久久 | 午夜在线免费观看视频 | 国产免费一区二区三区最新6 | av天天看| 亚洲国产精品99久久久久久久久 | 日韩中文一区二区三区 | 亚洲人的av | 久久99精品久久久久久青青日本 | 手机在线观看av | 日韩欧美在线观看 | 久久精品亚洲精品 | 欧美成人一区二免费视频软件 | 亚洲精品国产一区 | 中文字幕国产精品 | 国产精品一区二区在线播放 | 激情欧美日韩一区二区 | 国产亚洲精品精品国产亚洲综合 | 久久精品无码一区二区三区 | 亚洲精品一二区 | 欧美一级网站 |