[發明專利]一種JVM內存泄露自動檢測方法以及系統在審
| 申請號: | 201611018556.9 | 申請日: | 2016-11-11 |
| 公開(公告)號: | CN108073439A | 公開(公告)日: | 2018-05-25 |
| 發明(設計)人: | 鄭先斌;熊凌云 | 申請(專利權)人: | 深圳業拓訊通信科技有限公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455 |
| 代理公司: | 深圳市順天達專利商標代理有限公司 44217 | 代理人: | 郭偉剛 |
| 地址: | 518000 廣東省*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存泄露 內存信息 內存 內存使用信息 管理對象 內存系統 自動檢測 監聽器 內存池管理 內存使用量 注冊監聽器 告警 對象設置 垃圾回收 人員系統 通知系統 外部連接 影響程序 指令調用 回收 次內存 觸發 判定 分析 維護 | ||
一種JVM內存泄露自動檢測方法以及系統,方法包括:S1、基于獲取的內存池管理對象設置內存的回收使用量閾值,基于獲取的內存系統管理對象注冊監聽器;S2、若JVM進行完垃圾回收后內存超過回收使用量閾值,則內存系統管理對象將當前內存信息通知給監聽器;S3、監聽器基于最大內存使用量上升次數和上一次內存使用量,對當前內存信息進行分析以判斷是否存在內存泄露。本發明能夠自動的獲取到JVM內存使用信息,而且能夠更加及時的在GC完成之后獲取JVM的內存使用信息,得到準確的內存信息,不用進行外部連接或者指令調用,不影響程序正常運行;進一步地,在判定存在內存泄露時觸發告警,從而提前通知系統維護人員系統可能存在內存問題,利于問題的盡早定位。
技術領域
本發明涉及計算機領域,尤其涉及一種JVM內存泄露自動檢測方法以及系統。
背景技術
JVM(Java Virtual Machine,Java虛擬機)作為Java程序的執行環境,它有自己的一套內存管理機制,能夠完成分配、回收內存。對于Java程序員來說,不需要過多的關心對象是如何在內存中保存和使用的,因為有垃圾收集(Garbage Collection,簡稱GC)機制的存在,保證了Java程序能夠正常的運行。不過,即使經過測試的程序,也可能因為代碼編寫或者對象使用不當,導致JVM內存泄露或者內存溢出。還有可能因為JVM的內存配置不合理,無法滿足程序運行的需要(例如大量并發的請求)導致內存不足,這種情況雖然不屬于內存泄露,但是出現的問題是相同的,最后都會導致內存溢出。
實際的生產環境當中,都會給JVM分配較大的內存,同時也會對GC進行一定的配置優化,從而使得出現內存問題的時間被拉長和延后,通常需要一段時間(一到幾個小時甚至幾天、幾個星期)才能發現明顯的內存問題,對于這種不可預期的內存問題,如果不能夠及時準確的判斷出JVM是否出現內存泄露不能幫助維護人員盡早僅進行問題的定位,則會嚴重影響系統的正常運行。
現有監控JVM內存的途徑主要有:使用JConsole監視和管理控制臺,通過遠程接口進行可視化的監視,或者通過jmap、jstat等JAVA自帶的指令查詢當前的JVM內存狀況,根據多次內存的變化情況,判斷是否出現了內存泄露。現有技術方案的主要缺點是:
1)、需要人工去操作,并且需要人工進行不間斷的監控,觀察JVM GC后的結果,自動化程度低。
2)、所獲取到的JVM內存信息,都不是剛進行完GC(垃圾收集)后的JVM內存狀況,對于內存的變化,可能存在誤判的情況。
3)、需要建立連接或通過指令調用正在運行的JVM,不夠安全便捷,同時對于一些實時性要求高、請求并發量大的系統,實時進行對象數量的統計,會嚴重影響系統的正常運行。
發明內容
本發明要解決的技術問題在于,針對現有技術的上述缺陷,提供一種JVM內存泄露自動檢測方法以及系統。
本發明解決其技術問題所采用的技術方案是:構造一種JVM內存泄露自動檢測方法,包括以下步驟:
S1、基于獲取的內存池管理對象設置內存的回收使用量閾值,基于獲取的內存系統管理對象注冊監聽器以監聽內存使用量變化;
S2、若JVM進行完垃圾回收后內存超過設置的所述回收使用量閾值,則內存系統管理對象將當前內存信息通知給注冊的監聽器;
S3、監聽器基于最大內存使用量上升次數和上一次內存使用量,對當前內存信息進行分析以判斷是否存在內存泄露。
在本發明所述的JVM內存泄露自動檢測方法中,所述步驟S3中,監聽器在被通知觸發時,如果計算得到當前內存信息超過上一次內存使用量的連續次數達到最大內存使用量上升次數,則判定存在內存泄露。
在本發明所述的JVM內存泄露自動檢測方法中,所述步驟S3具體包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳業拓訊通信科技有限公司,未經深圳業拓訊通信科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611018556.9/2.html,轉載請聲明來源鉆瓜專利網。





