溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

服務器內存泄漏案例分析

發(fā)布時間:2021-11-16 10:20:40 來源:億速云 閱讀:222 作者:iii 欄目:大數(shù)據(jù)

本篇內容主要講解“服務器內存泄漏案例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“服務器內存泄漏案例分析”吧!

1.起因

線上服務經(jīng)常在提供一段時間的訪問之后無法訪問或者訪問時間太長,問題的原因多種多樣。這一次碰到的是內存泄漏。

2.工具安裝

  • 生產工具是Jetbrains Idea,使用的內存分析工具Jprofiler

  • 首先安裝Jprofiler,由于是收費軟件,我這里選擇了適用10天

  • 然后在Idea中安裝Jprofiler插件

服務器內存泄漏案例分析

  • 安裝完成profiler插件之后,重啟Idea,這里會出現(xiàn)一個小圖標

服務器內存泄漏案例分析

  • 點擊小圖標使用Jprofiler工具啟動啟動你的項目,這里第一次啟動會要求你配置Jprofiler工具的啟動文件如下圖:

        tips:文件位置在Jprofiler安裝目錄的bin目錄下,jprofiler.exe。

服務器內存泄漏案例分析

  • 這里選擇Evaluate試用

服務器內存泄漏案例分析

服務器內存泄漏案例分析

3.使用分析工具

  • 打開Live memory,查看All Objects選項,左側是各種對象的占用內存大小和實例數(shù)目

  • 服務器內存泄漏案例分析

  • 這里選擇Run Gc,然后執(zhí)行Mark current保存內存情況的快照,然后執(zhí)行Start Recordings

  • 服務器內存泄漏案例分析

  • 訪問出現(xiàn)內存泄漏的頁面,訪問完成后執(zhí)行Stop Recordings,然后執(zhí)行Run Gc

  • 服務器內存泄漏案例分析

  • 下圖中出現(xiàn)紅色柱子的就是沒有被GC的對象

  • 服務器內存泄漏案例分析

  • 選擇出現(xiàn)紅色的對象實例如下,執(zhí)行show selection in heap walker

  • 服務器內存泄漏案例分析

  • 執(zhí)行use selected objects,選擇references

  • 服務器內存泄漏案例分析

  • 服務器內存泄漏案例分析

  • 選擇show paths to gc root

  • 服務器內存泄漏案例分析

  • 服務器內存泄漏案例分析

  • 如上圖的對象就是出現(xiàn)內存泄漏的罪魁禍首。

  • 翻閱了thymeleaf-layout-dialect的官方更新文檔,發(fā)現(xiàn)官方已經(jīng)處理了內存泄漏的問題,升級jar包之后問題解決了。

4總結

thymeleaf-layout-dialect在2.0.0版本之前存在內存泄漏的問題,在2.0.1之后官方開始注意到這個問題,并開始逐步解決,目前使用的是2.4.1版本來解決這個問題。依賴如下:

<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>3.0.11.RELEASE</version>
    <exclusions>
        <exclusion>
            <artifactId>ognl</artifactId>
            <groupId>ognl</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring3</artifactId>
    <version>3.0.11.RELEASE</version>
</dependency>
<dependency>
    <groupId>nz.net.ultraq.thymeleaf</groupId>
    <artifactId>thymeleaf-layout-dialect</artifactId>
    <version>2.4.1</version>
    <exclusions>
        <exclusion>
            <artifactId>thymeleaf</artifactId>
            <groupId>org.thymeleaf</groupId>
        </exclusion>
    </exclusions>
</dependency>

到此,相信大家對“服務器內存泄漏案例分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI