欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種系統(tǒng)日志的控制方法和裝置制造方法

文檔序號:6537920閱讀:123來源:國知局
一種系統(tǒng)日志的控制方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種系統(tǒng)日志的控制方法和裝置,以解決大量的日志消息導(dǎo)致系統(tǒng)的負(fù)荷進(jìn)一步升高,消耗較多內(nèi)存資源的問題。其中,所述系統(tǒng)日志所在的系統(tǒng)包括至少一個(gè)功能模塊和日志任務(wù)消息隊(duì)列,所述方法包括:接收所述系統(tǒng)中各個(gè)功能模塊發(fā)送的日志消息;監(jiān)控所述系統(tǒng)的負(fù)荷狀態(tài);當(dāng)所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控閾值時(shí),降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。本發(fā)明可以避免在系統(tǒng)的負(fù)荷較高時(shí),大量的日志消息導(dǎo)致系統(tǒng)的負(fù)荷進(jìn)一步升高,消耗較多的內(nèi)存資源的問題。
【專利說明】一種系統(tǒng)日志的控制方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及日志控制【技術(shù)領(lǐng)域】,特別是涉及一種系統(tǒng)日志的控制方法和裝置。
【背景技術(shù)】
[0002]系統(tǒng)日志是系統(tǒng)運(yùn)行過程中各功能模塊用來記錄關(guān)鍵信息(例如,關(guān)鍵的流程、狀態(tài)、消息等)的一種方式,系統(tǒng)中的各個(gè)功能模塊在系統(tǒng)運(yùn)行過程中可以根據(jù)需要將其關(guān)鍵信息記錄到系統(tǒng)日志中,從而作為一種事后分析問題的有效手段。
[0003]在目前的系統(tǒng)日志管理過程中,各個(gè)功能模塊通過發(fā)送日志消息將日志內(nèi)容(包括關(guān)鍵信息)發(fā)送到日志任務(wù)的消息隊(duì)列中,再由日志任務(wù)從消息隊(duì)列中讀取出相應(yīng)的日志消息,并寫入到日志文件中。
[0004]但是上述方法中,當(dāng)系統(tǒng)的負(fù)荷較高時(shí),如果此時(shí)有大量的日志消息需求,則會導(dǎo)致系統(tǒng)的負(fù)荷進(jìn)一步升高,從而影響系統(tǒng)的運(yùn)行;另外,由于日志任務(wù)的處理過程涉及到效率較低的I/o (Input/Output,輸入/輸出)操作,任務(wù)的優(yōu)先級較低,因此還會導(dǎo)致日志消息大量累積到系統(tǒng)緩沖區(qū),從而會消耗較多的內(nèi)存資源。

【發(fā)明內(nèi)容】

[0005]本發(fā)明提供一種系統(tǒng)日志的控制方法和裝置,以解決當(dāng)系統(tǒng)的負(fù)荷較高時(shí),大量的日志消息導(dǎo)致系統(tǒng)的負(fù)荷進(jìn)一步升高,并且消耗較多的內(nèi)存資源的問題。
[0006]為了解決上述問題,本發(fā)明公開了一種系統(tǒng)日志的控制方法,其特征在于,所述系統(tǒng)日志所在的系統(tǒng)包括至少一個(gè)功能模塊和日志任務(wù)消息隊(duì)列,所述方法包括:
[0007]接收所述系統(tǒng)中各個(gè)功能模塊發(fā)送的日志消息;
[0008]監(jiān)控所述系統(tǒng)的負(fù)荷狀態(tài);
[0009]當(dāng)所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控閾值時(shí),降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。
[0010]優(yōu)選地,所述降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟包括:
[0011]采用整體控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;
[0012]和/ 或,
[0013]采用均衡控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;
[0014]和/ 或,
[0015]采用模塊控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;
[0016]和/ 或,
[0017]采用精細(xì)控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。
[0018]優(yōu)選地,所述采用整體控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟包括:
[0019]將所述系統(tǒng)的負(fù)荷與預(yù)設(shè)的流控上限和流控下限進(jìn)行比較;
[0020]若所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控上限,則判斷當(dāng)前的日志記錄狀態(tài);[0021]若為開啟狀態(tài),則修改為關(guān)閉狀態(tài),舍棄所述各個(gè)功能模塊發(fā)送的日志消息;
[0022]若所述系統(tǒng)的負(fù)荷小于預(yù)設(shè)的流控下限,則判斷當(dāng)前的日志記錄狀態(tài);
[0023]若為關(guān)閉狀態(tài),則修改為開啟狀態(tài),將所述各個(gè)功能模塊發(fā)送的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0024]優(yōu)選地,所述系統(tǒng)還包括多個(gè)令牌,所述令牌的狀態(tài)包括空閑狀態(tài)和占用狀態(tài),所述采用均衡控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟包括:
[0025]獲取所述系統(tǒng)中處于空閑狀態(tài)的令牌數(shù)量;
[0026]從所述日志消息中選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息;
[0027]將選取的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列,將剩余的日志消息進(jìn)行緩存。
[0028]優(yōu)選地,所述日志消息包括發(fā)送時(shí)間,
[0029]所述從所述日志消息中選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息的步驟包括:
[0030]按照所述發(fā)送時(shí)間的先后順序?qū)λ鋈罩鞠⑦M(jìn)行排序;
[0031]從排序后的第一個(gè)日志消息開始,選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的曰志消息。
[0032]優(yōu)選地,所述采用模塊控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟包括:
[0033]分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息的數(shù)量;
[0034]若某個(gè)功能模塊發(fā)送的日志消息的數(shù)量大于預(yù)設(shè)的數(shù)量閾值,則舍棄該功能模塊發(fā)送的日志消息,將剩余的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0035]優(yōu)選地,所述日志消息包括發(fā)送該日志消息的功能模塊標(biāo)識,
[0036]所述分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息的數(shù)量的步驟包括:
[0037]分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)包括同一功能模塊標(biāo)識的日志消息的數(shù)量,將所述數(shù)量作為所述同一功能模塊標(biāo)識對應(yīng)的功能模塊發(fā)送的日志消息的數(shù)量;
[0038]所述舍棄該功能模塊發(fā)送的日志消息的步驟包括:
[0039]舍棄包括該功能模塊標(biāo)識的日志消息。
[0040]優(yōu)選地,所述采用精細(xì)控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟包括:
[0041]判斷預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中是否存在重復(fù)的日志消息;
[0042]若存在,則從所述重復(fù)的日志消息中選取一個(gè)或多個(gè)日志消息;
[0043]舍棄所述重復(fù)的日志消息中未被選取的日志消息,將被選取的日志消息和剩余沒有重復(fù)的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0044]優(yōu)選地,所述日志消息包括文件名和行號,
[0045]所述判斷預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中是否存在重復(fù)的日志消息的步驟包括:
[0046]分別獲取預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息包括的文件名和行號;[0047]判斷是否存在包括的文件名和行號相同的日志消息;
[0048]若存在,則確定預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中存在重復(fù)的日志消息,并確定包括的文件名和行號相同的日志消息為重復(fù)的日志消息。
[0049]另一方面,本發(fā)明還公開了一種系統(tǒng)日志的控制裝置,其特征在于,所述系統(tǒng)日志所在的系統(tǒng)包括至少一個(gè)功能模塊和日志任務(wù)消息隊(duì)列,所述裝置包括:
[0050]接收模塊,用于接收所述系統(tǒng)中各個(gè)功能模塊發(fā)送的日志消息;
[0051]監(jiān)控模塊,用于監(jiān)控所述系統(tǒng)的負(fù)荷狀態(tài);
[0052]降低模塊,用于當(dāng)所述監(jiān)控模塊監(jiān)控到所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控閾值時(shí),降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。
[0053]優(yōu)選地,所述降低模塊包括:
[0054]整體控制子模塊,用于采用整體控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;
[0055]和/ 或,
[0056]均衡控制子模塊,用于采用均衡控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;
[0057]和/ 或,
[0058]模塊控制子模塊,用于采用模塊控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;
[0059]和/ 或,
[0060]精細(xì)控制子模塊,用于采用精細(xì)控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。
[0061]優(yōu)選地,所述整體控制子模塊包括:
[0062]比較子單元,用于將所述系統(tǒng)的負(fù)荷與預(yù)設(shè)的流控上限和流控下限進(jìn)行比較;
[0063]第一判斷子單元,用于當(dāng)所述比較子單元的比較結(jié)果為所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控上限時(shí),判斷當(dāng)前的日志記錄狀態(tài);
[0064]第一修改子單元,用于當(dāng)所述第一判斷子單元的判斷結(jié)果為開啟狀態(tài)時(shí),修改為關(guān)閉狀態(tài),舍棄所述各個(gè)功能模塊發(fā)送的日志消息;
[0065]第二判斷子單元,用于當(dāng)所述比較子單元的比較結(jié)果為所述系統(tǒng)的負(fù)荷小于預(yù)設(shè)的流控下限時(shí),判斷當(dāng)前的日志記錄狀態(tài);
[0066]第二修改子單元,用于當(dāng)所述第二判斷子單元的判斷結(jié)果為關(guān)閉狀態(tài)時(shí),修改為開啟狀態(tài),將所述各個(gè)功能模塊發(fā)送的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0067]優(yōu)選地,所述系統(tǒng)還包括多個(gè)令牌,所述令牌的狀態(tài)包括空閑狀態(tài)和占用狀態(tài),
[0068]所述均衡控制子模塊包括:
[0069]令牌獲取子單元,用于獲取所述系統(tǒng)中處于空閑狀態(tài)的令牌數(shù)量;
[0070]第一選取子單元,用于從所述日志消息中選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息;
[0071]第一發(fā)送子單元,用于將選取的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列;
[0072]緩存子單元,用于將剩余的日志消息進(jìn)行緩存。
[0073]優(yōu)選地,所述日志消息包括發(fā)送時(shí)間,[0074]所述第一選取子單元,具體用于按照所述發(fā)送時(shí)間的先后順序?qū)λ鋈罩鞠⑦M(jìn)行排序;從排序后的第一個(gè)日志消息開始,選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的曰志消息。
[0075]優(yōu)選地,所述模塊控制子模塊包括:
[0076]統(tǒng)計(jì)子單元,用于分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息的數(shù)量;
[0077]第二發(fā)送子單元,用于當(dāng)所述統(tǒng)計(jì)子單元統(tǒng)計(jì)出某個(gè)功能模塊發(fā)送的日志消息的數(shù)量大于預(yù)設(shè)的數(shù)量閾值時(shí),舍棄該功能模塊發(fā)送的日志消息,將剩余的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0078]優(yōu)選地,所述日志消息包括發(fā)送該日志消息的功能模塊標(biāo)識,
[0079]所述統(tǒng)計(jì)子單元,具體用于分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)包括同一功能模塊標(biāo)識的日志消息的數(shù)量,將所述數(shù)量作為所述同一功能模塊標(biāo)識對應(yīng)的功能模塊發(fā)送的日志消息的數(shù)量;
[0080]所述第二發(fā)送子單元,具體用于舍棄包括該功能模塊標(biāo)識的日志消息。
[0081]優(yōu)選地,所述精細(xì)控制子模塊包括:
[0082]重復(fù)判斷子單元,用于判斷預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中是否存在重復(fù)的日志消息;
[0083]第二選取子單元,用于在所述重復(fù)判斷子單元的判斷結(jié)果為存在時(shí),從所述重復(fù)的日志消息中選取一個(gè)或多個(gè)日志消息;
[0084]第三發(fā)送子單元,用于舍棄所述重復(fù)的日志消息中未被選取的日志消息,將被選取的日志消息和剩余沒有重復(fù)的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0085]優(yōu)選地,所述日志消息包括文件名和行號,
[0086]所述重復(fù)判斷子單元,具體用于分別獲取預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息包括的文件名和行號;判斷是否存在包括的文件名和行號相同的日志消息;若存在,則確定預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中存在重復(fù)的日志消息,并確定包括的文件名和行號相同的日志消息為重復(fù)的日志消息。
[0087]與現(xiàn)有技術(shù)相比,本發(fā)明包括以下優(yōu)點(diǎn):
[0088]本發(fā)明中可以對系統(tǒng)的負(fù)荷狀態(tài)進(jìn)行監(jiān)控,在接收所述系統(tǒng)中各個(gè)功能模塊發(fā)送的日志消息之后,如果當(dāng)前系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控閾值,則可以降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。由于降低了發(fā)送的日志消息的數(shù)量,因此可以避免在系統(tǒng)的負(fù)荷較高時(shí),大量的日志消息導(dǎo)致系統(tǒng)的負(fù)荷進(jìn)一步升高,消耗較多的內(nèi)存資源的問題。
【專利附圖】

【附圖說明】
[0089]圖1是本發(fā)明的一種系統(tǒng)日志所在的系統(tǒng)的示意圖;
[0090]圖2是本發(fā)明實(shí)施例一的一種系統(tǒng)日志的控制方法的流程圖;
[0091]圖3是本發(fā)明實(shí)施例二的一種系統(tǒng)日志的控制方法的流程圖;
[0092]圖4是本發(fā)明實(shí)施例三的一種系統(tǒng)日志的控制裝置的結(jié)構(gòu)框圖?!揪唧w實(shí)施方式】
[0093]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步詳細(xì)的說明。
[0094]為了解決當(dāng)系統(tǒng)的負(fù)荷較高時(shí),大量的日志消息導(dǎo)致系統(tǒng)的負(fù)荷進(jìn)一步升高,并且消耗較多的內(nèi)存資源的問題,本發(fā)明提出了一種通過進(jìn)行日志數(shù)量控制以對系統(tǒng)日志進(jìn)行控制的方式。
[0095]參照圖1,示出了本發(fā)明一種系統(tǒng)日志所在的系統(tǒng)的示意圖,根據(jù)圖1,該系統(tǒng)可以包括多個(gè)功能模塊(功能模塊I,功能模塊2,...,功能模塊N)、日志數(shù)量控制模塊和日志任務(wù)管理模塊,其中所述日志任務(wù)管理模塊中可以包括日志任務(wù)消息隊(duì)列。
[0096]在目前的系統(tǒng)日志管理過程中,各個(gè)功能模塊是直接將包括日志內(nèi)容(包括關(guān)鍵信息)的日志消息發(fā)送到日志任務(wù)管理模塊的日志任務(wù)消息隊(duì)列中,再由日志任務(wù)管理模塊從日志任務(wù)消息隊(duì)列中讀取出相應(yīng)的日志消息,并寫入到日志文件中,因此大量的日志消息將會導(dǎo)致系統(tǒng)負(fù)荷上升,消耗較多的內(nèi)存資源。
[0097]圖1所示的系統(tǒng)中,增加了日志數(shù)量控制模塊對發(fā)送給日志任務(wù)管理模塊的日志消息的數(shù)量進(jìn)行控制。首先,各個(gè)功能模塊可以通過異步消息的方式將日志消息發(fā)送到日志數(shù)量控制模塊,日志數(shù)量控制模塊根據(jù)實(shí)際情況對日志消息的數(shù)量進(jìn)行控制,然后再由日志數(shù)量控制模塊將日志消息發(fā)送至日志任務(wù)管理模塊的日志任務(wù)消息隊(duì)列中。
[0098]下面,通過以下各個(gè)實(shí)施例對一種系統(tǒng)日志的控制方法和裝置進(jìn)行說明,下述的多個(gè)實(shí)施例均可以在上述系統(tǒng)日志所在的系統(tǒng)的基礎(chǔ)上實(shí)現(xiàn)。
[0099]實(shí)施例一:
[0100]參照圖2,示出了本發(fā)明實(shí)施例一的一種系統(tǒng)日志的控制方法的流程圖,該方法具體可以包括以下步驟:
[0101]步驟201,接收所述系統(tǒng)中各個(gè)功能模塊發(fā)送的日志消息。
[0102]步驟202,監(jiān)控所述系統(tǒng)的負(fù)荷狀態(tài)。
[0103]步驟203,當(dāng)所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控閾值時(shí),降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。
[0104]上述步驟201-步驟203均可以為圖1中的日志數(shù)量控制模塊所執(zhí)行的功能,對于所述系統(tǒng)的負(fù)荷狀態(tài),可以實(shí)時(shí)進(jìn)行監(jiān)控,也可以定期進(jìn)行監(jiān)控。如果判斷出所述系統(tǒng)的負(fù)荷小于或等于預(yù)設(shè)的流控閾值,則可以說明暫時(shí)無需對日志消息的數(shù)量進(jìn)行控制,因此可以直接將所接收到的各個(gè)功能模塊發(fā)送的日志消息發(fā)送至日志任務(wù)消息隊(duì)列中;如果判斷出所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控閾值,則可以說明此時(shí)的日志消息會造成系統(tǒng)負(fù)荷進(jìn)一步上升,影響系統(tǒng)的性能,因此可以降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量,從而避免對系統(tǒng)的負(fù)荷造成較大的沖擊。
[0105]實(shí)施例二:
[0106]下面,通過本實(shí)施例二對系統(tǒng)日志的控制方法進(jìn)行詳細(xì)介紹。
[0107]參照圖3,示出了本發(fā)明實(shí)施例二的一種系統(tǒng)日志的控制方法的流程圖,該方法具體可以包括以下步驟:
[0108]步驟301,接收所述系統(tǒng)中各個(gè)功能模塊發(fā)送的日志消息。
[0109]系統(tǒng)日志是系統(tǒng)運(yùn)行過程中各功能模塊用來記錄關(guān)鍵信息(例如,關(guān)鍵的流程、狀態(tài)、消息等)的一種方式。在系統(tǒng)運(yùn)行過程中,系統(tǒng)中的各個(gè)功能模塊可以根據(jù)需要將自身的關(guān)鍵信息記錄到系統(tǒng)日志中,從而作為一種事后分析問題的有效手段。各個(gè)功能模塊可以將要記錄的關(guān)鍵信息等日志內(nèi)容以日志消息的形式進(jìn)行發(fā)送。
[0110]步驟302,監(jiān)控所述系統(tǒng)的負(fù)荷狀態(tài)。
[0111]本發(fā)明實(shí)施例中,所述監(jiān)控可以為實(shí)時(shí)監(jiān)控,也可以為定期監(jiān)控,對于定期監(jiān)控的周期,本領(lǐng)域技術(shù)人員根據(jù)實(shí)際經(jīng)驗(yàn)進(jìn)行相關(guān)設(shè)置即可,例如設(shè)置為5s,本發(fā)明實(shí)施例對此并不加以限制。
[0112]其中,所述系統(tǒng)的負(fù)荷狀態(tài)可以根據(jù)系統(tǒng)的CPU (Central ProcessingUnit,中央處理單元)占用率、或者系統(tǒng)的消息緩沖區(qū)占用率等參數(shù)確定。例如,可以獲取系統(tǒng)當(dāng)前的CPU占用率,并將所述(PU占用率作為系統(tǒng)當(dāng)前的負(fù)荷;或者獲取系統(tǒng)當(dāng)前的消息緩沖區(qū)占用率,并將所述消息緩沖區(qū)占用率作為系統(tǒng)當(dāng)前的負(fù)荷。當(dāng)然,還可以結(jié)合CPU占用率和消息緩沖區(qū)占用率兩者來確定系統(tǒng)的負(fù)荷狀態(tài),或者還可以通過系統(tǒng)中的其他性能參數(shù)確定系統(tǒng)的負(fù)荷狀態(tài),本發(fā)明實(shí)施例對此并不加以限制。
[0113]步驟303,判斷所述系統(tǒng)的負(fù)荷是否大于預(yù)設(shè)的流控閾值。
[0114]在確定系統(tǒng)的當(dāng)前負(fù)荷狀態(tài)之后,可以根據(jù)系統(tǒng)的負(fù)荷狀態(tài)對發(fā)送至日志任務(wù)消息隊(duì)列的日志消息的數(shù)量進(jìn)行控制。因此,首先可以判斷所述系統(tǒng)的負(fù)荷是否大于預(yù)設(shè)的流控閾值,若是,則執(zhí)行步驟304 ;若否,則執(zhí)行步驟305。
[0115]對于所述流控閾值,本領(lǐng)域技術(shù)人員根據(jù)實(shí)際經(jīng)驗(yàn)進(jìn)行相關(guān)設(shè)置即可,例如設(shè)置所述流控閾值為70%,等等,本發(fā)明實(shí)施例對此并不加以限制。
[0116]步驟304,降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。
[0117]如果判斷出所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控閾值,則可以說明此時(shí)系統(tǒng)負(fù)荷較高,如果再有大量的日志消息發(fā)送至日志任務(wù)消息隊(duì)列,則將會導(dǎo)致系統(tǒng)負(fù)荷進(jìn)一步提升,消耗較多的內(nèi)存資源。因此,在該種情況下,本發(fā)明實(shí)施例中可以降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量,以減輕對系統(tǒng)負(fù)荷造成的沖擊。
[0118]在本發(fā)明的一種優(yōu)選實(shí)施例中,該步驟304可以包括:采用整體控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;和/或,采用均衡控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;和/或,采用模塊控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;和/或,采用精細(xì)控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。也即,該步驟304中可以從上述整體控制方式、均衡控制方式、模塊控制方式和精細(xì)控制方式中選擇任何一種、或者選擇其中的任意兩種方式結(jié)合、或者選擇其中的任意三種方式結(jié)合、或者選擇全部四種方式結(jié)合,完成降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的過程。
[0119]下面,分別對上述四種控制方式進(jìn)行介紹。
[0120]1、整體控制方式
[0121]本發(fā)明實(shí)施例中,采用整體控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟具體可以包括以下子步驟:
[0122]子步驟al,將所述系統(tǒng)的負(fù)荷與預(yù)設(shè)的流控上限和流控下限進(jìn)行比較;
[0123]本發(fā)明實(shí)施例中,可以預(yù)先設(shè)置一個(gè)流控上限和一個(gè)流控下限,用于控制是否要向日志任務(wù)消息隊(duì)列發(fā)送日志消息。為了保證系統(tǒng)負(fù)荷更加均衡,上述流控上限和流控下限兩個(gè)數(shù)值之間具有一定間隔,即設(shè)置一定的緩沖區(qū),當(dāng)系統(tǒng)負(fù)荷位于緩沖區(qū)時(shí),將保持當(dāng)前的狀態(tài)。例如,可以設(shè)置流控上限為80%,流控下限為60%,則60%-80%之間即為緩沖區(qū)。
[0124]若所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控上限,則執(zhí)行子步驟a2 ;若所述系統(tǒng)的負(fù)荷小于預(yù)設(shè)的流控下限,則執(zhí)行子步驟a4 ;若所述系統(tǒng)的負(fù)荷大于或等于預(yù)設(shè)的流控下限,并且小于或等于預(yù)設(shè)的流控上限,則執(zhí)行子步驟a6。
[0125]在本發(fā)明的一種優(yōu)選實(shí)施例中,還可以在上述日志數(shù)量控制模塊中設(shè)置一個(gè)日志記錄狀態(tài),其可以包括開啟狀態(tài)和關(guān)閉狀態(tài),當(dāng)日志記錄狀態(tài)為開啟狀態(tài)時(shí),表示允許將各個(gè)功能模塊發(fā)送的日志消息發(fā)送至日志任務(wù)消息隊(duì)列中,當(dāng)日志記錄狀態(tài)為關(guān)閉狀態(tài)時(shí),表示不允許將將各個(gè)功能模塊發(fā)送的日志消息發(fā)送至日志任務(wù)消息隊(duì)列中,因此可以根據(jù)該日志記錄狀態(tài)控制是否向日志任務(wù)消息隊(duì)列發(fā)送日志消息。
[0126]子步驟a2,判斷當(dāng)前的日志記錄狀態(tài);
[0127]當(dāng)所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控上限時(shí),則可以說明此時(shí)的系統(tǒng)負(fù)荷較為緊張,因此在該種情況下,將屏蔽各個(gè)功能模塊發(fā)送的日志消息。由于對系統(tǒng)負(fù)荷狀態(tài)的監(jiān)控是實(shí)時(shí)或定期進(jìn)行的,因此在本次處理之前可能已經(jīng)對日志記錄狀態(tài)進(jìn)行了修改。因此,本發(fā)明實(shí)施例中可以首先判斷當(dāng)前的日志記錄狀態(tài),如果為開啟狀態(tài),則執(zhí)行子步驟a3;如果為關(guān)閉狀態(tài),則執(zhí)行子步驟a6。
[0128]子步驟a3,修改為關(guān)閉狀態(tài),舍棄所述各個(gè)功能模塊發(fā)送的日志消息;
[0129]如果在所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控上限,并且當(dāng)前的日志記錄狀態(tài)為開啟狀態(tài),此時(shí)則要將所述日志記錄狀態(tài)修改為關(guān)閉狀態(tài),舍棄所述各個(gè)功能模塊發(fā)送的日志消息,即拒絕將所述各個(gè)功能模塊發(fā)送的日志消息發(fā)送至日志任務(wù)消息隊(duì)列中。
[0130]子步驟a4,判斷當(dāng)前的日志記錄狀態(tài);
[0131]當(dāng)所述系統(tǒng)的負(fù)荷小于預(yù)設(shè)的流控下限時(shí),則可以說明此時(shí)的系統(tǒng)負(fù)荷較為空閑,因此在該種情況下,可以將各個(gè)功能模塊發(fā)送的日志消息發(fā)送至日志任務(wù)消息隊(duì)列中。首先可以判斷當(dāng)前的日志記錄狀態(tài),如果為關(guān)閉狀態(tài),則執(zhí)行子步驟a5 ;如果為開啟狀態(tài),則執(zhí)行子步驟a6。
[0132]子步驟a5,修改為開啟狀態(tài),將所述各個(gè)功能模塊發(fā)送的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0133]如果在所述系統(tǒng)的負(fù)荷小于預(yù)設(shè)的流控下限,并且當(dāng)前的日志記錄狀態(tài)為關(guān)閉狀態(tài)時(shí),此時(shí)則要將所述日志記錄狀態(tài)修改為開啟狀態(tài),并將所述各個(gè)功能模塊發(fā)送的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0134]子步驟a6,保持當(dāng)前的日志記錄狀態(tài)。
[0135]如果在子步驟al中判斷出所述系統(tǒng)的負(fù)荷大于或等于預(yù)設(shè)的流控下限,并且小于或等于預(yù)設(shè)的流控上限,則可以保持當(dāng)前的日志記錄狀態(tài)。如果當(dāng)前的日志記錄狀態(tài)為開啟狀態(tài),則將所述各個(gè)功能模塊發(fā)送的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列;如果當(dāng)前的日志記錄狀態(tài)為關(guān)閉狀態(tài),則舍棄所述各個(gè)功能模塊發(fā)送的日志消息。
[0136]如果在子步驟a2中判斷出當(dāng)前的日志記錄狀態(tài)為關(guān)閉狀態(tài),則可以保持日志記錄狀態(tài)為關(guān)閉狀態(tài),舍棄所述各個(gè)功能模塊發(fā)送的日志消息,即拒絕將所述各個(gè)功能模塊發(fā)送的日志消息發(fā)送至日志任務(wù)消息隊(duì)列中。
[0137]如果在子步驟a4中判斷出當(dāng)前的日志記錄狀態(tài)為開啟狀態(tài),則可以保持日志記錄狀態(tài)為開啟狀態(tài),并將所述各個(gè)功能模塊發(fā)送的日志消息發(fā)送至日志任務(wù)消息隊(duì)列中。
[0138]通過整體控制方式,可以在系統(tǒng)的負(fù)荷很高時(shí)(即大于流量上限時(shí)),停止向日志任務(wù)消息隊(duì)列發(fā)送日志消息,即將發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量降低至零,從而減輕系統(tǒng)的負(fù)擔(dān)。
[0139]2、均衡控制方式
[0140]本發(fā)明實(shí)施例中,采用均衡控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟具體可以包括以下子步驟:
[0141]子步驟bl,獲取系統(tǒng)中處于空閑狀態(tài)的令牌數(shù)量;
[0142]令牌是一種能夠控制節(jié)點(diǎn)占有媒體的特殊幀,以區(qū)別數(shù)據(jù)幀及其他控制幀。令牌法又稱為許可證法,令牌法的基本思想是:一個(gè)獨(dú)特稱為令牌的標(biāo)志信息(一位或多位二進(jìn)制數(shù)字組成的碼)從一個(gè)節(jié)點(diǎn)發(fā)送到另一個(gè)節(jié)點(diǎn),只有獲得令牌的節(jié)點(diǎn)才有權(quán)發(fā)送信息包。當(dāng)一個(gè)節(jié)點(diǎn)準(zhǔn)備發(fā)送信息包時(shí),首先要等待令牌的到來,當(dāng)檢測到一個(gè)經(jīng)過他的令牌為空閑狀態(tài)的令牌時(shí),即可以俘獲該令牌,并將該令牌的狀態(tài)設(shè)置為占用狀態(tài),然后以“幀”為單位向目標(biāo)節(jié)點(diǎn)發(fā)送信息;信息隨令牌至目標(biāo)節(jié)點(diǎn)后,目標(biāo)節(jié)點(diǎn)將信息復(fù)制,令牌繼續(xù)環(huán)行返回到發(fā)送節(jié)點(diǎn),這時(shí)發(fā)送站點(diǎn)才將俘獲的令牌釋放,令牌重新成為空閑狀態(tài)。如果所有令牌均為占用狀態(tài),此時(shí)希望發(fā)送信息的節(jié)點(diǎn)將要等待空閑狀態(tài)令牌的出現(xiàn)。
[0143]在所述系統(tǒng)日志所在的系統(tǒng)中還可以包括多個(gè)令牌,所述令牌的狀態(tài)可以包括空閑狀態(tài)和占用狀態(tài)兩種。本發(fā)明實(shí)施例中,可以依據(jù)令牌對發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量進(jìn)行控制。首先,可以獲取所述系統(tǒng)中處于空閑狀態(tài)的令牌數(shù)量,根據(jù)該令牌數(shù)量進(jìn)行控制。
[0144]需要說明的是,在上述子步驟bl之前,還可以判斷系統(tǒng)中是否存在處于空閑狀態(tài)的令牌,如果存在,則執(zhí)行子步驟bl,如果不存在,則暫時(shí)不做處理(即暫時(shí)停止向日志任務(wù)消息隊(duì)列發(fā)送日志消息),直至存在處于空閑狀態(tài)的令牌時(shí)執(zhí)行子步驟bl。
[0145]子步驟b2,從所述日志消息中選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息;
[0146]在獲取到系統(tǒng)中處于空閑狀態(tài)的令牌數(shù)量之后,即可按照該令牌的數(shù)量向日志任務(wù)消息隊(duì)列發(fā)送日志消息。具體可以從所述日志消息中選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息。
[0147]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述日志消息除了包括日志內(nèi)容之外,還可以包括該日志消息的發(fā)送時(shí)間,因此本發(fā)明實(shí)施例中可以按照所述日志消息的發(fā)送時(shí)間從所述日志消息中選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息。因此,該子步驟b2具體可以包括:按照所述發(fā)送時(shí)間的先后順序?qū)λ鋈罩鞠⑦M(jìn)行排序;從排序后的第一個(gè)日志消息開始,選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息。
[0148]當(dāng)然,還可以采用其他信息從所述日志消息中選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息,本發(fā)明實(shí)施例對此并不加以限制。例如,還可以預(yù)先為每個(gè)日志消息設(shè)置優(yōu)先級,在所述日志消息中還可以包括該日志消息對應(yīng)的優(yōu)先級,在此種情況下,該子步驟b2具體可以包括:按照所述優(yōu)先級的高低順序?qū)λ鋈罩鞠⑦M(jìn)行排序;從排序后的第一個(gè)日志消息開始,選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息。
[0149]子步驟b3,將選取的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列,將剩余的日志消息進(jìn)行緩存。
[0150]在從所述日志消息中選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息之后,即可將選取的日志消息通過所述處于空閑狀態(tài)的令牌發(fā)送至所述日志任務(wù)消息隊(duì)列,并將剩余的日志消息進(jìn)行緩存。
[0151]在將選取的日志消息通過處于空閑狀態(tài)的令牌成功發(fā)送至所述日志任務(wù)消息隊(duì)列之后,將釋放該日志消息所占用的令牌,即該日志消息所占用的令牌將從占用狀態(tài)轉(zhuǎn)換為空閑狀態(tài)。對于排序后緩存的剩余日志消息,將等待成功發(fā)送至日志任務(wù)消息隊(duì)列的日志消息所釋放的令牌,通過被釋放后處于空閑狀態(tài)的令牌發(fā)送至日志任務(wù)消息隊(duì)列。
[0152]上述子步驟bl-子步驟b3可以循環(huán)執(zhí)行,即在子步驟b3執(zhí)行完之后,可以返回步驟bl獲取系統(tǒng)中處于空閑狀態(tài)的令牌數(shù)量,如果此時(shí)存在空閑狀態(tài)的令牌,則可以從緩存的日志消息中選取與當(dāng)前處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息(該選取過程可以參照上述子步驟b2),最后將選取的日志消息通過所述處于空閑狀態(tài)的令牌發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0153]通過均衡控制方式,可以在系統(tǒng)的負(fù)荷較高時(shí)(即大于預(yù)設(shè)的流量閾值時(shí)),通過將發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量降低至與系統(tǒng)中處于空閑狀態(tài)的令牌數(shù)量相同,從而保證日志記錄的均衡,減輕系統(tǒng)的負(fù)擔(dān)。
[0154]3、模塊控制方式
[0155]本發(fā)明實(shí)施例中,采用模塊控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟具體可以包括以下子步驟:
[0156]子步驟Cl,分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息的數(shù)量;
[0157]本發(fā)明實(shí)施例中,由于各個(gè)功能模塊發(fā)送的日志消息的數(shù)量不均衡,因此還可以采用模塊控制,例如只對發(fā)送的日志消息較多的功能模塊進(jìn)行流控,而不會影響其他功能模塊。
[0158]隨著系統(tǒng)的運(yùn)行,各個(gè)功能模塊發(fā)送的日志消息的數(shù)量將會累積,因此在本發(fā)明實(shí)施例中,統(tǒng)計(jì)單位時(shí)間內(nèi)的各個(gè)功能模塊發(fā)送的日志消息的數(shù)量是為了找到發(fā)送日志消息頻率最高的功能模塊,如果該功能模塊在單位時(shí)間內(nèi)發(fā)送的日志消息數(shù)量大于預(yù)設(shè)的數(shù)量閾值則舍棄該功能模塊發(fā)送的日志消息。對于所述單位時(shí)間的具體數(shù)值,本領(lǐng)域技術(shù)人員根據(jù)具體系統(tǒng)進(jìn)行調(diào)整設(shè)置即可,例如可以設(shè)置所述單位時(shí)間為10分鐘、30分鐘、I小時(shí)等等,本發(fā)明實(shí)施例對此并不加以限制。
[0159]首先,可以分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息的數(shù)量。在本發(fā)明的一種優(yōu)選實(shí)施例中,所述日志消息還可以包括發(fā)送該日志消息的功能模塊標(biāo)識,因此,該子步驟Cl具體可以包括:分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)包括同一功能模塊標(biāo)識的日志消息的數(shù)量,將所述數(shù)量作為所述同一功能模塊標(biāo)識對應(yīng)的功能模塊發(fā)送的日志消息的數(shù)量。
[0160]例如,所述系統(tǒng)中包括3個(gè)功能模塊,其標(biāo)識分別為1、2、3,則可以分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)包括標(biāo)識1、標(biāo)識2、標(biāo)識3的日志消息的數(shù)量,將包括標(biāo)識I的日志消息的數(shù)量作為功能模塊I發(fā)送的日志消息的數(shù)量,將包括標(biāo)識2的日志消息的數(shù)量作為功能模塊2發(fā)送的日志消息的數(shù)量,將包括標(biāo)識3的日志消息的數(shù)量作為功能模塊3發(fā)送的日志消息的數(shù)量,等等。
[0161]需要說明的是,為了統(tǒng)計(jì)單位時(shí)間內(nèi)各個(gè)功能模塊發(fā)送的日志消息的數(shù)量,還可以在圖1所示的日志數(shù)量控制模塊中設(shè)置一個(gè)計(jì)時(shí)器,可以統(tǒng)計(jì)從計(jì)時(shí)開始到時(shí)間到達(dá)預(yù)設(shè)的單位時(shí)間時(shí),這一單位時(shí)間內(nèi)各個(gè)功能模塊發(fā)送的日志消息的數(shù)量,對于具體的過程,本發(fā)明實(shí)施例在此不再詳細(xì)論述。
[0162]子步驟c2,若某個(gè)功能模塊發(fā)送的日志消息的數(shù)量大于預(yù)設(shè)的數(shù)量閾值,則舍棄該功能模塊發(fā)送的日志消息,將剩余的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0163]本發(fā)明實(shí)施例中,可以預(yù)先設(shè)置一個(gè)數(shù)量閾值,并將上述統(tǒng)計(jì)的預(yù)設(shè)的單位時(shí)間內(nèi)各個(gè)功能模塊發(fā)送的日志消息的數(shù)量分別與所述數(shù)量閾值進(jìn)行比較,如果某個(gè)功能模塊發(fā)送的日志消息的數(shù)量大于預(yù)設(shè)的數(shù)量閾值,則可以說明該功能模塊在預(yù)設(shè)的單位時(shí)間內(nèi)發(fā)送的日志消息較多,在該種情況下可以舍棄該功能模塊發(fā)送的日志消息,并將剩余的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列,所述剩余的日志消息即為其它發(fā)送的日志消息的數(shù)量小于或等于預(yù)設(shè)的數(shù)量閾值的功能模塊發(fā)送的日志消息。其中,舍棄該功能模塊發(fā)送的日志消息的步驟具體可以包括:舍棄包括該功能模塊標(biāo)識的日志消息。上述過程中,如果存在多個(gè)功能模塊在預(yù)設(shè)的單位時(shí)間內(nèi)發(fā)送的日志消息的數(shù)量大于預(yù)設(shè)的數(shù)量閾值,則可以舍棄該多個(gè)功能模塊發(fā)送的日志消息。
[0164]本發(fā)明實(shí)施例中,該子步驟c2還可以采用其他的方式舍棄某個(gè)或某幾個(gè)功能模塊發(fā)送的日志消息。例如,在子步驟Cl中分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息的數(shù)量之后,還可以從其中選取發(fā)送的日志消息的數(shù)量最多的一個(gè)或幾個(gè)功能模塊,并舍棄該一個(gè)或幾個(gè)功能模塊發(fā)送的日志消息,然后將剩余的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0165]對于上述數(shù)量閾值的具體數(shù)值,以及具體舍棄幾個(gè)功能模塊發(fā)送的日志消息,本領(lǐng)域技術(shù)人員根據(jù)實(shí)際經(jīng)驗(yàn)進(jìn)行相關(guān)設(shè)定即可,例如可以根據(jù)當(dāng)前系統(tǒng)負(fù)荷的具體情況進(jìn)行設(shè)定,如果系統(tǒng)負(fù)荷較高,則將數(shù)量閾值設(shè)置為較低的值,將舍棄的個(gè)數(shù)設(shè)置為較多的個(gè)數(shù),如果系統(tǒng)負(fù)荷較低,則將數(shù)量閾值設(shè)置為較高的值,將舍棄的個(gè)數(shù)設(shè)置為較少的個(gè)數(shù),等等,本發(fā)明實(shí)施例對此并不加以限制。
[0166]通過模塊控制方式,可以在系統(tǒng)的負(fù)荷較高時(shí)(即大于預(yù)設(shè)的流量閾值時(shí)),通過舍棄某些功能模塊發(fā)送的日志消息,可以降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量,從而減輕系統(tǒng)的負(fù)擔(dān)。
[0167]4、精細(xì)控制方式
[0168]本發(fā)明實(shí)施例中,采用精細(xì)控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟具體可以包括以下子步驟:
[0169]子步驟dl,判斷預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中是否存在重復(fù)的日志消息;
[0170]系統(tǒng)在運(yùn)行過程中根據(jù)業(yè)務(wù)可能有大量重復(fù)的日志消息,根據(jù)系統(tǒng)負(fù)荷情況可以選擇對這種重復(fù)的日志消息進(jìn)行流控。首先可以判斷預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中是否存在重復(fù)的日志消息,若存在,則執(zhí)行子步驟d2,若不存在,則不作處理。
[0171]隨著系統(tǒng)的運(yùn)行,各個(gè)功能模塊發(fā)送的日志消息中存在重復(fù)的日志消息的可能性比較大,因此在本發(fā)明實(shí)施例中,判斷預(yù)設(shè)的單位時(shí)間內(nèi)各個(gè)功能模塊發(fā)送的日志消息中是否存在重復(fù)的日志消息是為了減少重復(fù)的日志消息。同樣的,對于所述單位時(shí)間的具體數(shù)值,本領(lǐng)域技術(shù)人員根據(jù)具體系統(tǒng)進(jìn)行調(diào)整設(shè)置即可,例如可以設(shè)置所述單位時(shí)間為10分鐘、30分鐘、I小時(shí)等等,本發(fā)明實(shí)施例對此并不加以限制。
[0172]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述日志消息還可以包括文件名和行號,因此,該子步驟dl具體可以包括:分別獲取預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息包括的文件名和行號;判斷是否存在包括的文件名和行號相同的日志消息;若存在,則確定預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中存在重復(fù)的日志消息,并確定包括的文件名和行號相同的日志消息為重復(fù)的日志消息;若不存在,則確定預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中不存在重復(fù)的日志消息。
[0173]需要說明的是,為了判斷預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中是否存在重復(fù)的日志消息,還可以在圖1所示的日志數(shù)量控制模塊中設(shè)置一個(gè)計(jì)時(shí)器,可以判斷從計(jì)時(shí)開始到時(shí)間到達(dá)預(yù)設(shè)的單位時(shí)間時(shí),這一單位時(shí)間內(nèi)各個(gè)功能模塊發(fā)送的日志消息中是否存在重復(fù)的日志消息,對于具體的過程,本發(fā)明實(shí)施例在此不再詳細(xì)論述。
[0174]子步驟d2,從所述重復(fù)的日志消息中選取一個(gè)或多個(gè)日志消息;
[0175]如果在預(yù)設(shè)的單位時(shí)間內(nèi)所接收到的日志消息中存在重復(fù)的日志消息,則可以從所述重復(fù)的日志消息中選取一個(gè)或多個(gè)日志消息。本發(fā)明實(shí)施例中可以根據(jù)當(dāng)前系統(tǒng)負(fù)荷的情況確定具體選取幾個(gè)日志消息。例如,如果系統(tǒng)負(fù)荷較高,則可以選取較少的日志消息,如果系統(tǒng)負(fù)荷較低,則可以選取較多的日志消息,本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況進(jìn)行相關(guān)處理即可,本發(fā)明實(shí)施例對此并不加以限制。
[0176]如果是選取一個(gè)日志消息,則從所述重復(fù)的日志消息中任意選取一個(gè)即可,例如選取發(fā)送時(shí)間最早的一個(gè)日志消息。如果是選取多個(gè)日志消息,則可以采用過濾的方法進(jìn)行選取,例如,首先可以按照發(fā)送時(shí)間的先后對所述重復(fù)的日志消息進(jìn)行排序;然后按照預(yù)設(shè)個(gè)數(shù)對排序后的日志消息進(jìn)行分組,例如可以將每3個(gè)日志消息劃分為一組;最后從每組中選取一個(gè)日志消息。當(dāng)然,根據(jù)系統(tǒng)負(fù)荷的實(shí)際情況,還可以采用其他的方式進(jìn)行日志消息的選取,本發(fā)明實(shí)施例在此不再詳細(xì)論述。
[0177]子步驟d3,舍棄所述重復(fù)的日志消息中未被選取的日志消息,將被選取的日志消息和剩余沒有重復(fù)的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0178]從所述重復(fù)的日志消息中選取一個(gè)或多個(gè)日志消息之后,即可將所述重復(fù)的日志消息中未被選取的日志消息舍棄,然后將被選取的日志消息和剩余沒有重復(fù)的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0179]通過精細(xì)控制方式,可以在系統(tǒng)的負(fù)荷較高時(shí)(即大于預(yù)設(shè)的流量閾值時(shí)),通過舍棄某些重復(fù)的日志消息,可以降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量,從而減輕系統(tǒng)的負(fù)擔(dān)。
[0180]步驟305,將所接收到的各個(gè)功能模塊發(fā)送的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0181]如果在步驟303中判斷所述系統(tǒng)的負(fù)荷小于或等于預(yù)設(shè)的流控閾值,則說明當(dāng)前的系統(tǒng)負(fù)荷可以滿足處理各個(gè)功能模塊發(fā)送的日志消息的需求,因此暫時(shí)可以不對發(fā)送至日志任務(wù)消息隊(duì)列的日志消息的數(shù)量進(jìn)行控制,直接將所接收到的各個(gè)功能模塊發(fā)送的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列即可。
[0182]在將日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列之后,可以由日志任務(wù)從消息隊(duì)列中讀取出相應(yīng)的日志消息,并寫入到日志文件中。對于具體的處理過程,本發(fā)明實(shí)施例不再詳細(xì)論述。
[0183]本發(fā)明實(shí)施例中,主要是根據(jù)系統(tǒng)的負(fù)荷狀態(tài)動態(tài)的控制日志消息的發(fā)送,提供了整體控制、均衡控制、模塊控制、精細(xì)控制四種控制方式,既保證了系統(tǒng)的正常運(yùn)行又最大化的保留日志記錄功能,有較好的靈活性和可控性,多種方式可供系統(tǒng)根據(jù)實(shí)際情況擇機(jī)米用。
[0184]對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
[0185]實(shí)施例三:
[0186]參照圖4,示出了本發(fā)明實(shí)施例三的一種系統(tǒng)日志的控制裝置的結(jié)構(gòu)框圖,所述系統(tǒng)日志所在的系統(tǒng)包括至少一個(gè)功能模塊和日志任務(wù)消息隊(duì)列,所述裝置具體可以包括以下模塊:
[0187]接收模塊401,用于接收所述系統(tǒng)中各個(gè)功能模塊發(fā)送的日志消息;
[0188]監(jiān)控模塊402,用于監(jiān)控所述系統(tǒng)的負(fù)荷狀態(tài);
[0189]降低模塊403,用于當(dāng)所述監(jiān)控模塊監(jiān)控到所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控閾值時(shí),降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。
[0190]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述降低模塊可以包括以下子模塊:
[0191]整體控制子模塊,用于采用整體控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;
[0192]和/ 或,
[0193]均衡控制子模塊,用于采用均衡控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;
[0194]和/ 或,
[0195]模塊控制子模塊,用于采用模塊控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;
[0196]和/ 或,
[0197]精細(xì)控制子模塊,用于采用精細(xì)控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。
[0198]其中,所述整體控制子模塊可以包括以下子單元:
[0199]比較子單元,用于將所述系統(tǒng)的負(fù)荷與預(yù)設(shè)的流控上限和流控下限進(jìn)行比較;
[0200]第一判斷子單元,用于當(dāng)所述比較子單元的比較結(jié)果為所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控上限時(shí),判斷當(dāng)前的日志記錄狀態(tài);
[0201]第一修改子單元,用于當(dāng)所述第一判斷子單元的判斷結(jié)果為開啟狀態(tài)時(shí),修改為關(guān)閉狀態(tài),舍棄所述各個(gè)功能模塊發(fā)送的日志消息;
[0202]第二判斷子單元,用于當(dāng)所述比較子單元的比較結(jié)果為所述系統(tǒng)的負(fù)荷小于預(yù)設(shè)的流控下限時(shí),判斷當(dāng)前的日志記錄狀態(tài);
[0203]第二修改子單元,用于當(dāng)所述第二判斷子單元的判斷結(jié)果為關(guān)閉狀態(tài)時(shí),修改為開啟狀態(tài),將所述各個(gè)功能模塊發(fā)送的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0204]所述系統(tǒng)還可以還包括多個(gè)令牌,所述令牌的狀態(tài)可以包括空閑狀態(tài)和占用狀態(tài)。所述均衡控制子模塊可以包括以下子單元:
[0205]令牌獲取子單元,用于獲取所述系統(tǒng)中處于空閑狀態(tài)的令牌數(shù)量;
[0206]第一選取子單元,用于從所述日志消息中選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息;
[0207]第一發(fā)送子單元,用于將選取的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列;
[0208]緩存子單元,用于將剩余的日志消息進(jìn)行緩存。其中,所述日志消息還可以包括發(fā)送時(shí)間,所述第一選取子單元,具體可以用于按照所述發(fā)送時(shí)間的先后順序?qū)λ鋈罩鞠⑦M(jìn)行排序;從排序后的第一個(gè)日志消息開始,選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息。
[0209]本發(fā)明實(shí)施例中,在第一發(fā)送子單元將選取的日志消息通過處于空閑狀態(tài)的令牌成功發(fā)送至所述日志任務(wù)消息隊(duì)列之后,將釋放該日志消息所占用的令牌,即該日志消息所占用的令牌將從占用狀態(tài)轉(zhuǎn)換為空閑狀態(tài)。對于排序后緩存的剩余日志消息,將等待成功發(fā)送至日志任務(wù)消息隊(duì)列的日志消息所釋放的令牌,通過被釋放后處于空閑狀態(tài)的令牌發(fā)送至日志任務(wù)消息隊(duì)列。因此,本發(fā)明實(shí)施例中,所述均衡控制子模塊還可以包括令牌釋放子單元,用于在第一發(fā)送子單元將選取的日志消息通過處于空閑狀態(tài)的令牌成功發(fā)送至所述日志任務(wù)消息隊(duì)列之后,釋放所述日志消息所占用的令牌。
[0210]所述模塊控制子模塊可以包括以下子單元:
[0211]統(tǒng)計(jì)子單元,用于分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息的數(shù)量;
[0212]第二發(fā)送子單元,用于當(dāng)所述統(tǒng)計(jì)子單元統(tǒng)計(jì)出某個(gè)功能模塊發(fā)送的日志消息的數(shù)量大于預(yù)設(shè)的數(shù)量閾值時(shí),舍棄該功能模塊發(fā)送的日志消息,將剩余的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0213]其中,所述日志消息還可以包括發(fā)送該日志消息的功能模塊標(biāo)識。所述統(tǒng)計(jì)子單元,具體可以用于分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)包括同一功能模塊標(biāo)識的日志消息的數(shù)量,將所述數(shù)量作為所述同一功能模塊標(biāo)識對應(yīng)的功能模塊發(fā)送的日志消息的數(shù)量;所述第二發(fā)送子單元,具體可以用于舍棄包括該功能模塊標(biāo)識的日志消息。
[0214]所述精細(xì)控制子模塊可以包括以下子單元:
[0215]重復(fù)判斷子單元,用于判斷預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中是否存在重復(fù)的日志消息;
[0216]第二選取子單元,用于在所述重復(fù)判斷子單元的判斷結(jié)果為存在時(shí),從所述重復(fù)的日志消息中選取一個(gè)或多個(gè)日志消息;
[0217]第三發(fā)送子單元,用于舍棄所述重復(fù)的日志消息中未被選取的日志消息,將被選取的日志消息和剩余沒有重復(fù)的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
[0218]其中,所述日志消息還可以包括文件名和行號,所述重復(fù)判斷子單元,具體可以用于分別獲取預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息包括的文件名和行號;判斷是否存在包括的文件名和行號相同的日志消息;若存在,則確定預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中存在重復(fù)的日志消息,并確定包括的文件名和行號相同的日志消息為重復(fù)的日志消息。
[0219]本發(fā)明實(shí)施例中可以對系統(tǒng)的負(fù)荷狀態(tài)進(jìn)行監(jiān)控,在接收所述系統(tǒng)中各個(gè)功能模塊發(fā)送的日志消息之后,如果當(dāng)前系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控閾值,則可以降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。由于降低了發(fā)送的日志消息的數(shù)量,因此可以避免在系統(tǒng)的負(fù)荷較高時(shí),大量的日志消息導(dǎo)致系統(tǒng)的負(fù)荷進(jìn)一步升高,消耗較多的內(nèi)存資源的問題。
[0220]對于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。[0221]本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
[0222]本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲介質(zhì)中。
[0223]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
[0224]以上對本發(fā)明所提供的一種系統(tǒng)日志的控制方法和裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種系統(tǒng)日志的控制方法,其特征在于,所述系統(tǒng)日志所在的系統(tǒng)包括至少一個(gè)功能模塊和日志任務(wù)消息隊(duì)列,所述方法包括: 接收所述系統(tǒng)中各個(gè)功能模塊發(fā)送的日志消息; 監(jiān)控所述系統(tǒng)的負(fù)荷狀態(tài); 當(dāng)所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控閾值時(shí),降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟包括: 采用整體控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量; 和/或, 采用均衡控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量; 和/或, 采用模塊控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量; 和/或, 采用精細(xì)控制方 式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述采用整體控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟包括: 將所述系統(tǒng)的負(fù)荷與預(yù)設(shè)的流控上限和流控下限進(jìn)行比較; 若所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控上限,則判斷當(dāng)前的日志記錄狀態(tài); 若為開啟狀態(tài),則修改為關(guān)閉狀態(tài),舍棄所述各個(gè)功能模塊發(fā)送的日志消息; 若所述系統(tǒng)的負(fù)荷小于預(yù)設(shè)的流控下限,則判斷當(dāng)前的日志記錄狀態(tài); 若為關(guān)閉狀態(tài),則修改為開啟狀態(tài),將所述各個(gè)功能模塊發(fā)送的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述系統(tǒng)還包括多個(gè)令牌,所述令牌的狀態(tài)包括空閑狀態(tài)和占用狀態(tài),所述采用均衡控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟包括: 獲取所述系統(tǒng)中處于空閑狀態(tài)的令牌數(shù)量; 從所述日志消息中選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息; 將選取的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列,將剩余的日志消息進(jìn)行緩存。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述日志消息包括發(fā)送時(shí)間, 所述從所述日志消息中選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息的步驟包括: 按照所述發(fā)送時(shí)間的先后順序?qū)λ鋈罩鞠⑦M(jìn)行排序; 從排序后的第一個(gè)日志消息開始,選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述采用模塊控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟包括: 分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息的數(shù)量; 若某個(gè)功能模塊發(fā)送的日志消息的數(shù)量大于預(yù)設(shè)的數(shù)量閾值,則舍棄該功能模塊發(fā)送的日志消息,將剩余的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述日志消息包括發(fā)送該日志消息的功能模塊標(biāo)識, 所述分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息的數(shù)量的步驟包括: 分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)包括同一功能模塊標(biāo)識的日志消息的數(shù)量,將所述數(shù)量作為所述同一功能模塊標(biāo)識對應(yīng)的功能模塊發(fā)送的日志消息的數(shù)量; 所述舍棄該功能模塊發(fā)送的日志消息的步驟包括: 舍棄包括該功能模塊標(biāo)識的日志消息。
8.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述采用精細(xì)控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量的步驟包括: 判斷預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中是否存在重復(fù)的日志消息; 若存在,則從所述重復(fù)的日志消息中選取一個(gè)或多個(gè)日志消息; 舍棄所述重復(fù)的日志消息中未被選取的日志消息,將被選取的日志消息和剩余沒有重復(fù)的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述日志消息包括文件名和行號, 所述判斷預(yù)設(shè)的單位時(shí)間 內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中是否存在重復(fù)的日志消息的步驟包括: 分別獲取預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息包括的文件名和行號; 判斷是否存在包括的文件名和行號相同的日志消息; 若存在,則確定預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中存在重復(fù)的日志消息,并確定包括的文件名和行號相同的日志消息為重復(fù)的日志消息。
10.一種系統(tǒng)日志的控制裝置,其特征在于,所述系統(tǒng)日志所在的系統(tǒng)包括至少一個(gè)功能模塊和日志任務(wù)消息隊(duì)列,所述裝置包括: 接收模塊,用于接收所述系統(tǒng)中各個(gè)功能模塊發(fā)送的日志消息; 監(jiān)控模塊,用于監(jiān)控所述系統(tǒng)的負(fù)荷狀態(tài); 降低模塊,用于當(dāng)所述監(jiān)控模塊監(jiān)控到所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控閾值時(shí),降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述降低模塊包括: 整體控制子模塊,用于采用整體控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量; 和/或, 均衡控制子模塊,用于采用均衡控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量; 和/或, 模塊控制子模塊,用于采用模塊控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量;和/或, 精細(xì)控制子模塊,用于采用精細(xì)控制方式降低發(fā)送至所述日志任務(wù)消息隊(duì)列的日志消息的數(shù)量。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述整體控制子模塊包括: 比較子單元,用于將所述系統(tǒng)的負(fù)荷與預(yù)設(shè)的流控上限和流控下限進(jìn)行比較; 第一判斷子單元,用于當(dāng)所述比較子單元的比較結(jié)果為所述系統(tǒng)的負(fù)荷大于預(yù)設(shè)的流控上限時(shí),判斷當(dāng)前的日志記錄狀態(tài); 第一修改子單元,用于當(dāng)所述第一判斷子單元的判斷結(jié)果為開啟狀態(tài)時(shí),修改為關(guān)閉狀態(tài),舍棄所述各個(gè)功能模塊發(fā)送的日志消息; 第二判斷子單元,用于當(dāng)所述比較子單元的比較結(jié)果為所述系統(tǒng)的負(fù)荷小于預(yù)設(shè)的流控下限時(shí),判斷當(dāng)前的日志記錄狀態(tài); 第二修改子單元,用于當(dāng)所述第二判斷子單元的判斷結(jié)果為關(guān)閉狀態(tài)時(shí),修改為開啟狀態(tài),將所述各個(gè)功能模塊發(fā)送的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
13.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述系統(tǒng)還包括多個(gè)令牌,所述令牌的狀態(tài)包括空閑狀態(tài)和占用狀態(tài), 所述均衡控制子模塊包括: 令牌獲取子單元,用于獲取所述系統(tǒng)中處于空閑狀態(tài)的令牌數(shù)量; 第一選取子單元,用于從所述日志消息中選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息; 第一發(fā)送子單元,用于將選取的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列; 緩存子單元,用于將剩余的日志消息進(jìn)行緩存。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述日志消息包括發(fā)送時(shí)間, 所述第一選取子單元,具體用于按照所述發(fā)送時(shí)間的先后順序?qū)λ鋈罩鞠⑦M(jìn)行排序;從排序后的第一個(gè)日志消息開始,選取與所述處于空閑狀態(tài)的令牌數(shù)量相同數(shù)量的日志消息。
15.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述模塊控制子模塊包括: 統(tǒng)計(jì)子單元,用于分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息的數(shù)量; 第二發(fā)送子單元,用于當(dāng)所述統(tǒng)計(jì)子單元統(tǒng)計(jì)出某個(gè)功能模塊發(fā)送的日志消息的數(shù)量大于預(yù)設(shè)的數(shù)量閾值時(shí),舍棄該功能模塊發(fā)送的日志消息,將剩余的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述日志消息包括發(fā)送該日志消息的功能模塊標(biāo)識, 所述統(tǒng)計(jì)子單元,具體用于分別統(tǒng)計(jì)預(yù)設(shè)的單位時(shí)間內(nèi)包括同一功能模塊標(biāo)識的日志消息的數(shù)量,將所述數(shù)量作為所述同一功能模塊標(biāo)識對應(yīng)的功能模塊發(fā)送的日志消息的數(shù)量; 所述第二發(fā)送子單元,具體用于舍棄包括該功能模塊標(biāo)識的日志消息。
17.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述精細(xì)控制子模塊包括: 重復(fù)判斷子單元,用于判斷預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中是否存在重復(fù)的日志消息; 第二選取子單元,用于在所述重復(fù)判斷子單元的判斷結(jié)果為存在時(shí),從所述重復(fù)的日志消息中選取一個(gè)或多個(gè)日志消息;
第三發(fā)送子單元,用于舍棄所述重復(fù)的日志消息中未被選取的日志消息,將被選取的日志消息和剩余沒有重復(fù)的日志消息發(fā)送至所述日志任務(wù)消息隊(duì)列。
18.根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述日志消息包括文件名和行號,所述重復(fù)判斷子單元,具體用于分別獲取預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息包括的文件名和行號;判斷是否存在包括的文件名和行號相同的日志消息;若存在,則確定預(yù)設(shè)的單位時(shí)間內(nèi)所述各個(gè)功能模塊發(fā)送的日志消息中存在重復(fù)的日志消息,并確定包括的文件名和行號相同的日志消息為重復(fù)的日志消息。
【文檔編號】G06F11/30GK103838659SQ201410053917
【公開日】2014年6月4日 申請日期:2014年2月17日 優(yōu)先權(quán)日:2014年2月17日
【發(fā)明者】牛磊, 弋景峰, 王雪平 申請人:大唐移動通信設(shè)備有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
平武县| 襄汾县| 扶余县| 桐城市| 柘荣县| 大同县| 穆棱市| 巴彦淖尔市| 丰台区| 胶州市| 虹口区| 永春县| 凤冈县| 北票市| 寻甸| 弋阳县| 双辽市| 邻水| 恩施市| 池州市| 景东| 潜山县| 台湾省| 怀仁县| 遂宁市| 高陵县| 沂南县| 洛南县| 浦北县| 湘阴县| 古浪县| 南木林县| 新平| 雷山县| 余江县| 石门县| 贡觉县| 周至县| 三江| 恩平市| 沁水县|