[發(fā)明專(zhuān)利]JAVA進(jìn)程的內(nèi)存溢出監(jiān)控方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)在審
| 申請(qǐng)?zhí)枺?/td> | 202010090267.X | 申請(qǐng)日: | 2020-02-13 |
| 公開(kāi)(公告)號(hào): | CN111400125A | 公開(kāi)(公告)日: | 2020-07-10 |
| 發(fā)明(設(shè)計(jì))人: | 黃日華 | 申請(qǐng)(專(zhuān)利權(quán))人: | 中國(guó)平安人壽保險(xiǎn)股份有限公司 |
| 主分類(lèi)號(hào): | G06F11/30 | 分類(lèi)號(hào): | G06F11/30;G06F11/14 |
| 代理公司: | 深圳市世聯(lián)合知識(shí)產(chǎn)權(quán)代理有限公司 44385 | 代理人: | 汪琳琳 |
| 地址: | 518000 廣東省深圳市福田區(qū)益田路5033號(hào)*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | java 進(jìn)程 內(nèi)存 溢出 監(jiān)控 方法 裝置 設(shè)備 存儲(chǔ) 介質(zhì) | ||
本申請(qǐng)實(shí)施例屬于軟件監(jiān)控領(lǐng)域,涉及JAVA進(jìn)程的內(nèi)存溢出監(jiān)控方法,一種JAVA進(jìn)程的內(nèi)存溢出監(jiān)控方法,包括:從存儲(chǔ)的日志文件中,定時(shí)獲取待檢測(cè)的Java進(jìn)程對(duì)應(yīng)的日志,作為目標(biāo)日志,其中,每條目標(biāo)日志對(duì)應(yīng)一條日志內(nèi)容;對(duì)日志內(nèi)容進(jìn)行解析,將解析結(jié)果與預(yù)設(shè)的異常字符串進(jìn)行匹配處理,得到匹配結(jié)果;若匹配結(jié)果為匹配成功,則目標(biāo)日志存在內(nèi)存溢出,則創(chuàng)建待檢測(cè)的Java進(jìn)程對(duì)應(yīng)的備份文件,并重啟待檢測(cè)的Java進(jìn)程。本申請(qǐng)還提供一種JAVA進(jìn)程的內(nèi)存溢出監(jiān)控裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)。本申請(qǐng)實(shí)現(xiàn)了對(duì)JAVA進(jìn)程進(jìn)行監(jiān)控,智能判斷JAVA進(jìn)程是否存在內(nèi)存溢出異常,提高了JAVA進(jìn)程監(jiān)控效率。
技術(shù)領(lǐng)域
本申請(qǐng)涉及軟件監(jiān)控領(lǐng)域,尤其涉及JAVA進(jìn)程的內(nèi)存溢出監(jiān)控方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù)
內(nèi)存泄露是指:用動(dòng)態(tài)存儲(chǔ)分配函數(shù)動(dòng)態(tài)開(kāi)辟的空間,在使用完畢后未釋放,導(dǎo)致該內(nèi)存單元一直被占據(jù),無(wú)法被回收。存在內(nèi)存泄漏問(wèn)題的程序,一般表現(xiàn)方式是:該程序運(yùn)行時(shí)間越長(zhǎng),占用內(nèi)存越多,隨著程序運(yùn)行時(shí)間越來(lái)越長(zhǎng),就會(huì)導(dǎo)致內(nèi)存泄露越來(lái)越嚴(yán)重,最后導(dǎo)致這個(gè)程序出現(xiàn)內(nèi)存溢出(Out of Memory,簡(jiǎn)稱(chēng)OOM),使得服務(wù)無(wú)法正常運(yùn)行。
在Java進(jìn)程出現(xiàn)內(nèi)存溢出異常時(shí),若未及時(shí)檢測(cè)到內(nèi)存溢出的異常,將導(dǎo)致應(yīng)用程序無(wú)法正常使用。尤其是在集群環(huán)境中,每個(gè)節(jié)點(diǎn)服務(wù)器都部署有一個(gè)或多個(gè)Java進(jìn)程,在出現(xiàn)內(nèi)存溢出異常時(shí),會(huì)對(duì)生產(chǎn)環(huán)境造成重大影響。
當(dāng)前,解決這種Java進(jìn)程內(nèi)存溢出異常,主要是通過(guò)腳本進(jìn)行定時(shí)重啟,但這種方式在定時(shí)時(shí)間間隔較長(zhǎng)時(shí),若出現(xiàn)內(nèi)存溢出異常,將會(huì)在較長(zhǎng)時(shí)間段內(nèi)影響生產(chǎn)環(huán)境的正常運(yùn)行,在定時(shí)時(shí)間間隔較短時(shí),重啟頻率過(guò)高,且對(duì)生產(chǎn)環(huán)境也帶來(lái)一定影響,如何實(shí)現(xiàn)高效的進(jìn)行Java進(jìn)程內(nèi)存溢出異常監(jiān)控,成了一個(gè)亟待解決的技術(shù)難題。
發(fā)明內(nèi)容
本申請(qǐng)實(shí)施例的目的在于提出一種JAVA進(jìn)程的內(nèi)存溢出監(jiān)控方法,能夠?qū)崿F(xiàn)對(duì)Java進(jìn)程實(shí)時(shí)監(jiān)控,檢測(cè)JAVA進(jìn)程是否存在內(nèi)存溢出的異常,提高Java進(jìn)程的內(nèi)存溢出異常監(jiān)控的效率。
為了解決上述技術(shù)問(wèn)題,本申請(qǐng)實(shí)施例提供一種JAVA進(jìn)程的內(nèi)存溢出監(jiān)控方法,包括:
從存儲(chǔ)的日志文件中,定時(shí)獲取待檢測(cè)的Java進(jìn)程對(duì)應(yīng)的日志,作為目標(biāo)日志,其中,每條所述目標(biāo)日志對(duì)應(yīng)一條日志內(nèi)容;
對(duì)所述日志內(nèi)容進(jìn)行解析,將解析結(jié)果與預(yù)設(shè)的異常字符串進(jìn)行匹配處理,得到匹配結(jié)果;
若所述匹配結(jié)果為匹配成功,則所述目標(biāo)日志存在內(nèi)存溢出,創(chuàng)建所述待檢測(cè)的Java進(jìn)程對(duì)應(yīng)的備份文件,并重啟所述待檢測(cè)的Java進(jìn)程。
進(jìn)一步的,所述從存儲(chǔ)的日志文件中,定時(shí)獲取待檢測(cè)的Java進(jìn)程對(duì)應(yīng)的日志,作為目標(biāo)日志包括:
采用預(yù)設(shè)的定時(shí)任務(wù)腳本,定時(shí)獲取所述待檢測(cè)的Java進(jìn)程的進(jìn)程ID,作為目標(biāo)ID;
從所述日志文件中,按照當(dāng)前時(shí)間點(diǎn)由近到遠(yuǎn)的順序,讀取預(yù)設(shè)閾值數(shù)量的日志,作為待篩選日志;
檢測(cè)所述待篩選日志中是否包含所述目標(biāo)ID,得到檢測(cè)結(jié)果;
若所述檢測(cè)結(jié)果為所述待篩選日志中包含所述目標(biāo)ID,則獲取包含所述目標(biāo)ID的待篩選日志,作為所述目標(biāo)日志。
進(jìn)一步的,所述對(duì)所述日志內(nèi)容進(jìn)行解析,將解析結(jié)果與預(yù)設(shè)的異常字符串進(jìn)行匹配處理,得到匹配結(jié)果包括:
獲取所述預(yù)設(shè)的異常字符串,作為基礎(chǔ)字符串;
對(duì)所述日志內(nèi)容進(jìn)行解析,得到所述日志內(nèi)容的字符串,作為目標(biāo)字符串;
采用字符串匹配的方式,對(duì)所述目標(biāo)字符串與所述基礎(chǔ)字符串進(jìn)行字符串匹配,得到所述匹配結(jié)果。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于中國(guó)平安人壽保險(xiǎn)股份有限公司,未經(jīng)中國(guó)平安人壽保險(xiǎn)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010090267.X/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過(guò)測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過(guò)處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過(guò)軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 基于支持類(lèi)的標(biāo)識(shí)來(lái)下載Java應(yīng)用的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品
- 啟動(dòng)JAVA應(yīng)用的方法及裝置
- Java虛擬機(jī)的管理方法、監(jiān)控系統(tǒng)和監(jiān)控代理模塊
- 一種運(yùn)行Java程序的方法和裝置
- 一種保護(hù)java程序的方法
- Java卡的Java代碼補(bǔ)丁方法
- 一種基于中間件架構(gòu)下java棧的多線程實(shí)現(xiàn)方法
- 一種支持JAVA卡補(bǔ)丁函數(shù)的智能卡
- 一種改進(jìn)的Java卡初始化方法和Java卡
- JavaEE平臺(tái)構(gòu)建方法、JavaEE平臺(tái)及云端系統(tǒng)
- 一種進(jìn)程自動(dòng)恢復(fù)方法
- 進(jìn)程啟動(dòng)方法及內(nèi)核、進(jìn)程
- 一種進(jìn)程間的通信方法和裝置
- 進(jìn)程解析裝置、進(jìn)程解析方法和進(jìn)程解析程序
- 32位進(jìn)程和64位進(jìn)程交叉注入方法及裝置
- 一種應(yīng)用進(jìn)程控制方法及裝置
- 插件下載方法及裝置
- 進(jìn)程間的數(shù)據(jù)傳輸方法和裝置
- 進(jìn)程監(jiān)視裝置、進(jìn)程監(jiān)視方法和進(jìn)程監(jiān)視程序
- 一種基于動(dòng)態(tài)監(jiān)測(cè)的進(jìn)程優(yōu)化調(diào)度方法





