一種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法及裝置制造方法
【專利摘要】本申請公開了一種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法及裝置,該方法包括:接收用戶發(fā)送的監(jiān)測指令,依據(jù)該監(jiān)測指令,創(chuàng)建第一線程、第二線程及第三線程,觸發(fā)該第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù),若是,控制該第一線程觸發(fā)該第二線程,由該第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中,控制該第二線程觸發(fā)該第三線程,由該第三線程讀取該監(jiān)測隊列中的性能數(shù)據(jù)。通過本申請?zhí)峁┑姆椒ǎ瑒?chuàng)建三個線程,觸發(fā)第一線程實時監(jiān)測性能數(shù)據(jù)的產(chǎn)生,并控制每一個線程完成各自的工作后去觸發(fā)下一個線程的執(zhí)行,實現(xiàn)了持續(xù)不斷地進行監(jiān)測,相較于現(xiàn)有技術(shù)的單線程輪詢機制,可以及時監(jiān)測產(chǎn)生的性能數(shù)據(jù),提高了監(jiān)測效率。
【專利說明】—種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法及裝置
【技術(shù)領(lǐng)域】
[0001]本申請涉及設(shè)備監(jiān)測【技術(shù)領(lǐng)域】,尤其是一種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法及裝置?!颈尘凹夹g(shù)】
[0002]服務(wù)器,是應(yīng)用程序與硬件之間的中間系統(tǒng),其性能的好壞直接決定應(yīng)用程序的工作狀態(tài)。因此,需要實時獲取服務(wù)器的性能數(shù)據(jù),并對其進行分析從而得出服務(wù)器的運行狀態(tài),以達到對服務(wù)器性能的監(jiān)測。目前,使用的監(jiān)測方式為單線程輪詢機制,即數(shù)據(jù)監(jiān)測線程每隔一段時間獲取一次監(jiān)測數(shù)據(jù)。
[0003]而由于監(jiān)測需要依賴于一定的運行環(huán)境,如操作系統(tǒng)、CPU等,中國國內(nèi)研究開發(fā)的一些運行環(huán)境,如飛騰CPU、麒麟操作系統(tǒng)及龍芯平臺等,由于自身技術(shù)因素的限制如CPU主頻速度慢,所述監(jiān)測方式獲取監(jiān)測數(shù)據(jù)耗費的時間較長,監(jiān)測效率低下。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本申請?zhí)峁┝艘环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法及裝置,以解決現(xiàn)有技術(shù)中監(jiān)測方式獲取監(jiān)測數(shù)據(jù)耗費的時間較長,監(jiān)測效率低下的問題。本申請?zhí)峁┑募夹g(shù)方案如下:
[0005]一種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法,包括:
[0006]接收用戶發(fā)送的監(jiān)測指令;
[0007]依據(jù)接收到的監(jiān)測指令,創(chuàng)建第一線程、第二線程及第三線程;
[0008]觸發(fā)所述第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù);
[0009]若是,控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中,控制所述第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)。
[0010]上述方法,優(yōu)選的,預(yù)先設(shè)定監(jiān)測隊列的閾值容量為Q,預(yù)先設(shè)置有監(jiān)控文件,其中:所述控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中,包括:
[0011]控制第一線程觸發(fā)所述第二線程,由第二線程判斷所述監(jiān)控文件中的性能數(shù)據(jù)與所述監(jiān)測隊列中的性能數(shù)據(jù)N之和是否大于等于所述閾值容量Q,獲得第一結(jié)果;
[0012]當所述第一結(jié)果為是時,控制所述第一線程觸發(fā)所述第二線程,由所述第二線程從所述監(jiān)控文件中獲取Q-N條性能數(shù)據(jù)放入所述監(jiān)測隊列中;
[0013]當所述第一結(jié)果為否時,控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述監(jiān)控文件中的性能數(shù)據(jù)放入所述監(jiān)測隊列中,并判斷所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)與所述監(jiān)測隊列中的性能數(shù)據(jù)M之和是否大于等于所述閾值容量,獲得第二結(jié)果;
[0014]當所述第二結(jié)果為是時,控制所述第一線程觸發(fā)所述第二線程,由所述第二線程從所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)中獲取Q-M條性能數(shù)據(jù)放入所述監(jiān)測隊列中,并將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)中的剩余性能數(shù)據(jù)放入所述監(jiān)控文件中;[0015]當所述第二結(jié)果為否時,控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入所述監(jiān)測隊列中。
[0016]上述方法,優(yōu)選的,所述控制第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù),包括:
[0017]控制所述第二線程觸發(fā)所述第三線程,由所述第三線程將所述監(jiān)測隊列中的性能數(shù)據(jù)分為多個性能數(shù)據(jù)塊;
[0018]控制所述第二線程觸發(fā)所述第三線程,由所述第三線程依次讀取所述各個性能數(shù)據(jù)塊。
[0019]上述方法,優(yōu)選的,在所述控制第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)之后,還包括:
[0020]將所述第三線程讀取的所述監(jiān)測隊列中的性能數(shù)據(jù)進行顯示。
[0021]本申請還提供了一種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測裝置,包括:
[0022]接收指令單元,用于接收用戶發(fā)送的監(jiān)測指令;
[0023]創(chuàng)建線程單元,用于依據(jù)接收到的監(jiān)測指令,創(chuàng)建第一線程、第二線程及第三線程;
[0024]第一觸發(fā)單元,用于觸發(fā)所述第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù);若是,觸發(fā)第二觸發(fā)單元;
[0025]第二觸發(fā)單元,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中,觸發(fā)第三觸發(fā)單元;
[0026]第三觸發(fā)單元,用于控制所述第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)。
[0027]上述裝置,優(yōu)選的,還包括:
[0028]第一預(yù)先設(shè)置單元,用于預(yù)先設(shè)置閾值容量為Q的監(jiān)測隊列;
[0029]第二預(yù)先設(shè)置單元,用于預(yù)先設(shè)置監(jiān)控文件。
[0030]上述裝置,優(yōu)選的,所述第二觸發(fā)單元包括:
[0031]第一判斷子單元,用于控制第一線程觸發(fā)所述第二線程,由第二線程判斷所述監(jiān)控文件中的性能數(shù)據(jù)與所述監(jiān)測隊列中的性能數(shù)據(jù)N之和是否大于等于所述閾值容量Q,獲得第一結(jié)果;當所述第一結(jié)果為是時,觸發(fā)第一結(jié)果子單元;當所述第一結(jié)果為否時,觸發(fā)弟二結(jié)果單兀;
[0032]第一結(jié)果子單元,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程從所述監(jiān)控文件中獲取Q-N條性能數(shù)據(jù)放入所述監(jiān)測隊列中;
[0033]第二結(jié)果子單元,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述監(jiān)控文件中的性能數(shù)據(jù)放入所述監(jiān)測隊列中,并判斷所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)與所述監(jiān)測隊列中的性能數(shù)據(jù)M之和是否大于等于所述閾值容量,獲得第二結(jié)果;當所述第二結(jié)果為是時,觸發(fā)第三結(jié)果子單元;當所述第二結(jié)果為否時,觸發(fā)第四結(jié)果子單元;
[0034]第三結(jié)果子單元,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程從所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)中獲取Q-M條性能數(shù)據(jù)放入所述監(jiān)測隊列中,并將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)中的剩余性能數(shù)據(jù)放入所述監(jiān)控文件中;
[0035]第四結(jié)果子單元,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入所述監(jiān)測隊列中。
[0036]上述裝置,優(yōu)選的,所述第三觸發(fā)單元包括:
[0037]劃分子單元,用于控制所述第二線程觸發(fā)所述第三線程,由所述第三線程將所述監(jiān)測隊列中的性能數(shù)據(jù)分為多個性能數(shù)據(jù)塊;
[0038]讀取子單元,用于控制所述第二線程觸發(fā)所述第三線程,由所述第三線程依次讀取所述各個性能數(shù)據(jù)塊。
[0039]上述裝置,優(yōu)選的,還包括:
[0040]顯示單元,用于將所述第三線程讀取的所述監(jiān)測隊列中的性能數(shù)據(jù)進行顯示。
[0041]由以上的技術(shù)方案可知,本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法及裝置,該方法包括:接收用戶發(fā)送的監(jiān)測指令,依據(jù)該監(jiān)測指令,創(chuàng)建第一線程、第二線程及第三線程,觸發(fā)該第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù),若是,控制該第一線程觸發(fā)該第二線程,由該第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中,控制該第二線程觸發(fā)該第三線程,由該第三線程讀取該監(jiān)測隊列中的性能數(shù)據(jù),繼續(xù)執(zhí)行觸發(fā)該第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù)。通過本申請?zhí)峁┑姆椒?,?chuàng)建三個線程,觸發(fā)第一線程實時監(jiān)測性能數(shù)據(jù)的產(chǎn)生,并控制每一個線程完成各自的工作后去觸發(fā)下一個線程的執(zhí)行,實現(xiàn)了持續(xù)不斷地在執(zhí)行監(jiān)測過程,相較于現(xiàn)有技術(shù)中的單線程輪詢機制,可以及時監(jiān)測服務(wù)器產(chǎn)生的性能數(shù)據(jù),提高了監(jiān)測效率。
【專利附圖】
【附圖說明】
[0042]為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0043]圖1為本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法實施例一的流程圖;
[0044]圖2為本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法實施例二的部分流程圖;
[0045]圖3為本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測裝置實施例三的結(jié)構(gòu)示意圖;
[0046]圖4為本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測裝置實施例四的部分結(jié)構(gòu)示意圖;
[0047]圖5為本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測裝置實施例五的部分結(jié)構(gòu)示意圖;
[0048]圖6為本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測裝置實施例六的部分結(jié)構(gòu)示意圖。
【具體實施方式】
[0049]下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
[0050]請參閱圖1,其示出了本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法實施例一的流程圖,本實施例可以包括:
[0051]步驟101:接收用戶發(fā)送的監(jiān)測指令。
[0052]用戶要查看服務(wù)器的運行狀態(tài),需要分析所述服務(wù)器的產(chǎn)生的性能數(shù)據(jù),從而可依據(jù)不同的運行狀態(tài)決定如何對服務(wù)器進行調(diào)整或設(shè)置。為實現(xiàn)所述監(jiān)測功能,用戶啟動監(jiān)測過程,啟動方式可以認為發(fā)送監(jiān)測指令。
[0053]步驟102:依據(jù)接收到的監(jiān)測指令,創(chuàng)建第一線程、第二線程及第三線程。
[0054]當接收到監(jiān)測指令時,進行創(chuàng)建線程過程。
[0055]步驟103:觸發(fā)所述第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù);若是,執(zhí)行步驟104。
[0056]創(chuàng)建的第一線程用于實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù),并在產(chǎn)生性能數(shù)據(jù)時,即執(zhí)行步驟104。其中,所述服務(wù)器可以是應(yīng)用服務(wù)器,則與所述應(yīng)用服務(wù)器相對應(yīng)的性能數(shù)據(jù)可以包括線程池狀態(tài)數(shù)據(jù)如當前線程總數(shù)、虛擬機內(nèi)存統(tǒng)計數(shù)據(jù)、虛擬機類加載數(shù)據(jù)、WEB容器統(tǒng)計數(shù)據(jù)等,所述性能數(shù)據(jù)用于表示所述服務(wù)器的運行狀態(tài)。需要說明的是,所述服務(wù)器包括但不限定與應(yīng)用服務(wù)器,還可以包括文件服務(wù)器、網(wǎng)頁服務(wù)器等,只要是可以產(chǎn)生能表明自身運行狀態(tài)性能數(shù)據(jù)的服務(wù)器都屬于本申請的保護范圍。
[0057]需要說明的是,觸發(fā)所述第一線程持續(xù)實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù),直到接收到用戶發(fā)送的監(jiān)測停止指令。
[0058]步驟104:控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中,控制所述第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)。
[0059]控制所述第一線程監(jiān)測到產(chǎn)生性能數(shù)據(jù)時觸發(fā)所述第二線程,以使所述第二線程將所述性能數(shù)據(jù)放入監(jiān)測隊列,并在所述第二線程完成所述工作后,控制所述第二線程觸發(fā)所述第三線程,以使所述第三線程讀取性能數(shù)據(jù)。其中,所述觸發(fā)過程可以向被觸發(fā)對象發(fā)送指令,當被觸發(fā)對象接收到指令時,完成相應(yīng)工作。
[0060]當然,所述控制動作也可認為是觸發(fā)的動作,即向被控制對象發(fā)送相應(yīng)指令,當被控制對象接收到指令時,完成相應(yīng)工作。
[0061]需要說明的是,步驟103與所述步驟104可同時進行,即在所述第二線程將產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中或所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)的同時,所述第一線程監(jiān)測是否產(chǎn)生性能數(shù)據(jù)。
[0062]由以上的技術(shù)方案可知,本實施例提供了一種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法,該方法包括:接收用戶發(fā)送的監(jiān)測指令,依據(jù)該監(jiān)測指令,創(chuàng)建第一線程、第二線程及第三線程,觸發(fā)該第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù),若是,控制該第一線程觸發(fā)該第二線程,由該第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中,控制該第二線程觸發(fā)該第三線程,由該第三線程讀取該監(jiān)測隊列中的性能數(shù)據(jù),繼續(xù)執(zhí)行觸發(fā)該第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù)。
[0063]需要說明的是,國產(chǎn)環(huán)境下生產(chǎn)的CPU模塊具有核數(shù)多的特點,通過本申請?zhí)峁┑姆椒?,?chuàng)建的所述三個線程可以同時運行在不同的內(nèi)核上,分別完成性能數(shù)據(jù)獲取過程不同的工作。本申請控制每一個線程完成各自的工作后去觸發(fā)下一個線程的執(zhí)行,實現(xiàn)了持續(xù)不斷地在執(zhí)行監(jiān)測過程,相較于現(xiàn)有技術(shù)中使用單線程輪詢機制,即隔一段時間獲取一次監(jiān)控數(shù)據(jù),提高了線程的利用率,可以及時獲取產(chǎn)生的性能數(shù)據(jù),提高了監(jiān)測效率。
[0064]同時,觸發(fā)第一線程實時監(jiān)測性能數(shù)據(jù)的產(chǎn)生,所述第一線程可以與所述第二線程或所述第三線程同時進行,相較于現(xiàn)有技術(shù)中單線程獨自執(zhí)行獲取性能數(shù)據(jù),一方面進一步提高了監(jiān)測效率,另一方面提高了進程的利用率,降低資源消耗。
[0065]需要說明的是,上述實施例步驟102中的創(chuàng)建第一線程、第二線程及第三線程的時間點并不作限制,即可以在接收到監(jiān)測指令時,同時或依次創(chuàng)建所述三個線程;也可以是在接收到監(jiān)測指令時創(chuàng)建第一線程,在所述第一線程監(jiān)測到所述服務(wù)器產(chǎn)生性能數(shù)據(jù)后創(chuàng)建第二線程,在所述第二線程將所述性能數(shù)據(jù)放入到所述監(jiān)測隊列后,創(chuàng)建第三線程。優(yōu)選的,選用第二種創(chuàng)建方式,即當使用某一線程前創(chuàng)建該線程,可以提高資源的利用率。
[0066]請參閱圖2,其示出了本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法實施例二的部分流程圖,預(yù)先設(shè)定監(jiān)測隊列的閾值容量為Q,預(yù)先設(shè)置有監(jiān)控文件,當然,所述預(yù)先設(shè)置監(jiān)測隊列及監(jiān)控文件的動作并不是每次對服務(wù)器的性能數(shù)據(jù)進行監(jiān)測的過程中都執(zhí)行,只是在首次監(jiān)測前,進行相應(yīng)的設(shè)置即可。實施例一步驟103中的所述控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中可以由以下步驟實現(xiàn):
[0067]步驟201:控制第一線程觸發(fā)所述第二線程,由第二線程判斷所述監(jiān)控文件中的性能數(shù)據(jù)與所述監(jiān)測隊列中的性能數(shù)據(jù)N之和是否大于等于所述閾值容量Q,獲得第一結(jié)果;當所述第一結(jié)果為是時,執(zhí)行步驟202 ;當所述第一結(jié)果為否時,執(zhí)行步驟203。
[0068]所述監(jiān)測隊列是內(nèi)存中的緩存區(qū)域,數(shù)據(jù)讀取速度較快,用于暫時存儲所述第二線程獲取的產(chǎn)生的性能數(shù)據(jù)。所述監(jiān)控文件可以為txt格式的文件,也可以是word格式的文件,當然,并不限定于所述兩種形式,現(xiàn)有技術(shù)中能保存性能數(shù)據(jù)的各種格式的文件都屬于本申請的保護范圍。預(yù)先設(shè)置的監(jiān)控文件中初始時并不包含有性能數(shù)據(jù),當步驟204被執(zhí)行時,所述監(jiān)控文件中即可包含有性能數(shù)據(jù)。對于所述第二線程的判斷過程進行舉例說明。
[0069]例如,預(yù)先設(shè)定監(jiān)測隊列的閾值容量為100條,當前監(jiān)控文件中的性能數(shù)據(jù)為10條,當前所述監(jiān)測隊列中的性能數(shù)據(jù)N為40條,10加上40為50,并不大于等于所述閾值容量100,則執(zhí)行步驟203 ;若預(yù)先設(shè)定監(jiān)測隊列的閾值容量為100條,當前監(jiān)控文件中的性能數(shù)據(jù)為50條,當前所述監(jiān)測隊列中的性能數(shù)據(jù)N為60條,50加上60為110,大于所述閾值容量100,則執(zhí)行步驟202。
[0070]步驟202:控制所述第一線程觸發(fā)所述第二線程,由所述第二線程從所述監(jiān)控文件中獲取Q-N條性能數(shù)據(jù)放入所述監(jiān)測隊列中,執(zhí)行實施例一中步驟104控制所述第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)的過程。
[0071]例如,所述監(jiān)測隊列的閾值容量Q為100條,當前所述監(jiān)測隊列中的性能數(shù)據(jù)N為60條,則所述第二線程從所述監(jiān)控文件中獲取100-60即40條性能數(shù)據(jù),放入所述監(jiān)測隊列中。
[0072]需要說明的是,所述獲取過程可以是以數(shù)據(jù)流的形式一次性地讀取,也可以是分多次進行讀取。例如,一次讀取40條性能數(shù)據(jù),或分兩次每次讀取20條性能數(shù)據(jù)。
[0073]步驟203:控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述監(jiān)控文件中的性能數(shù)據(jù)放入所述監(jiān)測隊列中,并由所述第二線程判斷所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)與所述監(jiān)測隊列中的性能數(shù)據(jù)M之和是否大于等于所述閾值容量,獲得第二結(jié)果;當所述第二結(jié)果為是時,執(zhí)行步驟204 ;當所述第二結(jié)果為否時,執(zhí)行步驟205。
[0074]當前監(jiān)測隊列中的性能數(shù)據(jù)與監(jiān)控文件中的性能數(shù)據(jù)之和小于所述監(jiān)測隊列的閾值容量時,進行本步驟。首先將監(jiān)控文件中的性能數(shù)據(jù)放入到監(jiān)控隊列中,所述監(jiān)控隊列中的性能數(shù)據(jù)由N增加為M,并由所述第二線程進一步判斷實施例一的步驟103中所述第一線程監(jiān)測到的服務(wù)器產(chǎn)生的所述性能數(shù)據(jù)與監(jiān)測隊列中增加以后的性能數(shù)據(jù)M之和是否大于等于閾值容量Q,若是,進行步驟204,否則進行步驟205。
[0075]例如,預(yù)先設(shè)定監(jiān)測隊列的閾值容量Q為100條,當前監(jiān)控文件中的性能數(shù)據(jù)為20條,當前所述監(jiān)測隊列中的性能數(shù)據(jù)N為40條,將所述20條性能數(shù)據(jù)放入所述監(jiān)測隊列中,所述監(jiān)測隊列中的性能數(shù)據(jù)M為60條,若所述第一線程監(jiān)測到產(chǎn)生的性能數(shù)據(jù)為30條,60加上30為90,小于100,進行步驟205 ;若所述第一線程監(jiān)測到產(chǎn)生的性能數(shù)據(jù)為200條,60加上200,大于100,進行步驟204。
[0076]步驟204:控制所述第一線程觸發(fā)所述第二線程,由所述第二線程從所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)中獲取Q-M條性能數(shù)據(jù)放入所述監(jiān)測隊列中,并將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)中的剩余性能數(shù)據(jù)放入所述監(jiān)控文件中,繼續(xù)執(zhí)行實施例一中步驟104控制所述第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)的過程。
[0077]所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)為實施例一的步驟103中所述第一線程監(jiān)測到的服務(wù)器產(chǎn)生的所述性能數(shù)據(jù)。
[0078]例如,預(yù)先設(shè)定監(jiān)測隊列的閾值容量Q為100條,所述第一線程監(jiān)測到產(chǎn)生的性能數(shù)據(jù)為200條,所述第二線程從中獲取100-60即40條性能數(shù)據(jù),將獲取的所述40條數(shù)據(jù)放入所述監(jiān)測隊列中,并將200-40即160條性能數(shù)據(jù)放入到監(jiān)控文件中。
[0079]當然,所述監(jiān)控文件相較于監(jiān)測隊列,為大容量的存儲單元,用于暫時存儲服務(wù)器產(chǎn)生的所述性能數(shù)據(jù)。兩者相比,所述監(jiān)測隊列中的性能數(shù)據(jù)被直接讀取進行顯示,所述監(jiān)測隊列中數(shù)據(jù)讀取速度較快。
[0080]步驟205:控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入所述監(jiān)測隊列中,執(zhí)行實施例一中步驟104控制所述第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)的過程。
[0081]當前監(jiān)測隊列中的性能數(shù)據(jù)M與監(jiān)控文件中的性能數(shù)據(jù)之和小于所述監(jiān)測隊列的閾值容量時,進行本步驟,即直接將所述實施例一步驟103監(jiān)測到的所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到監(jiān)測隊列中。
[0082]例如,所述監(jiān)測隊列中的性能數(shù)據(jù)M為60條,若所述第一線程監(jiān)測到產(chǎn)生的性能數(shù)據(jù)為30條,60加上30為90,小于100,將所述30條性能數(shù)據(jù)直接放入所述監(jiān)測隊列中。
[0083]需要說明的是,上述步驟中的各個觸發(fā)動作,可以認為是向被觸發(fā)對象發(fā)送指令,以使所述被觸發(fā)對象完成相應(yīng)工作。同樣的,所述各個控制動作也可以認為是觸發(fā)動作,即向被控制對象發(fā)送指令,以使所述被控制對象完成相應(yīng)工作。
[0084]由以上的技術(shù)方案可知,本實施例提供的一種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法中,監(jiān)測隊列的容量是有限的,即容量閾值為Q,則相應(yīng)的預(yù)先設(shè)置監(jiān)測文件用于暫存服務(wù)器產(chǎn)生的多余的性能數(shù)據(jù)。當?shù)谝痪€程監(jiān)測到有新的性能數(shù)據(jù)產(chǎn)生時,首先將監(jiān)測文件中的性能數(shù)據(jù)放入到監(jiān)測隊列中,若所述監(jiān)測隊列達到閾值,控制第二線程觸發(fā)第三線程進行性能數(shù)據(jù)的讀??;若所述監(jiān)測隊列沒有達到閾值,且所述服務(wù)器產(chǎn)生的新的性能數(shù)據(jù)較多時,則將一部分放入到監(jiān)測隊列使監(jiān)測隊列達到閾值,將另一部分放入到監(jiān)測文件中暫存。
[0085]本實施例使用監(jiān)測隊列存儲要讀取的少量數(shù)據(jù),監(jiān)測隊列讀取速度快,可以快速地將所述性能數(shù)據(jù)進行讀取,保證監(jiān)測過程的高效性。同時,使用監(jiān)測文件對服務(wù)器產(chǎn)生的大量性能數(shù)據(jù)進行暫存,防止所述性能數(shù)據(jù)的丟失,保證監(jiān)測結(jié)果的準確性。
[0086]實施一中的步驟104中控制第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù),可以有以下方式實現(xiàn):
[0087]控制所述第二線程觸發(fā)所述第三線程,由所述第三線程將所述監(jiān)測隊列中的性能數(shù)據(jù)分為多個性能數(shù)據(jù)塊;
[0088]控制所述第二線程觸發(fā)所述第三線程,由所述第三線程依次讀取所述各個性能數(shù)據(jù)塊。
[0089]該實現(xiàn)方式中,控制所述第二線程觸發(fā)所述第三線程,由所述第三線程多次讀取所述監(jiān)測隊列中的性能數(shù)據(jù),可以減輕每次數(shù)據(jù)傳輸過程中的數(shù)據(jù)傳輸負擔(dān)。
[0090]在上述各個實施例的步驟之后,還可以包括顯示性能數(shù)據(jù)的步驟,即將所述第三線程讀取的所述性能數(shù)據(jù)進行顯示,以供有關(guān)人員進行分析,從而得到所述服務(wù)器的運行狀態(tài),為對所述服務(wù)器工作參數(shù)的設(shè)置提供依據(jù)。所述顯示方式,可以為圖或表格的形式,當然,包括并不限定于以上兩種方式。
[0091]請參閱圖3,其示出了本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測裝置實施例三的結(jié)構(gòu)示意圖,本實施例可以包括:接收指令單元301、創(chuàng)建線程單元302、第一觸發(fā)單元303、第二觸發(fā)單元304及第三觸發(fā)單元305。其中:
[0092]所述接收指令單元301,用于接收用戶發(fā)送的監(jiān)測指令。
[0093]用戶要查看服務(wù)器的運行狀態(tài),需要分析所述服務(wù)器的產(chǎn)生的性能數(shù)據(jù),從而可依據(jù)不同的運行狀態(tài)決定如何對服務(wù)器進行調(diào)整或設(shè)置。為實現(xiàn)所述監(jiān)測功能,用戶啟動監(jiān)測過程,啟動方式可以認為發(fā)送監(jiān)測指令。
[0094]所述創(chuàng)建線程單元302,用于依據(jù)接收到的監(jiān)測指令,創(chuàng)建第一線程、第二線程及
第二線程。
[0095]當接收到監(jiān)測指令時,所述創(chuàng)建線程單元302進行創(chuàng)建線程過程。
[0096]所述第一觸發(fā)單元303,用于觸發(fā)所述第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù);若是,觸發(fā)第二觸發(fā)單元304。
[0097]所述創(chuàng)建線程單元302創(chuàng)建的第一線程用于實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù)。每當監(jiān)測到產(chǎn)生性能數(shù)據(jù)時,即所述第一觸發(fā)單元303觸發(fā)所述第二觸發(fā)單元304。其中,所述服務(wù)器可以是應(yīng)用服務(wù)器,則與所述應(yīng)用服務(wù)器相對應(yīng)的性能數(shù)據(jù)可以包括線程池狀態(tài)數(shù)據(jù)如當前線程總數(shù)、虛擬機內(nèi)存統(tǒng)計數(shù)據(jù)、虛擬機類加載數(shù)據(jù)、WEB容器統(tǒng)計數(shù)據(jù)等,所述性能數(shù)據(jù)用于表示所述服務(wù)器的運行狀態(tài)。需要說明的是,所述服務(wù)器包括但不限定與應(yīng)用服務(wù)器,還可以包括文件服務(wù)器、網(wǎng)頁服務(wù)器等,只要是可以產(chǎn)生能表明自身運行狀態(tài)性能數(shù)據(jù)的服務(wù)器都屬于本申請的保護范圍。
[0098]需要說明的是,觸發(fā)所述第一線程持續(xù)實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù),直到接收到用戶發(fā)送的監(jiān)測停止指令。
[0099]所述第二觸發(fā)單元304,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中,觸發(fā)第三觸發(fā)單元305 ;所述第三觸發(fā)單元305,用于控制所述第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)。
[0100]所述第二觸發(fā)單元304控制所述第一線程監(jiān)測到產(chǎn)生性能數(shù)據(jù)時觸發(fā)所述第二線程,以使所述第二線程將所述性能數(shù)據(jù)放入監(jiān)測隊列,并在所述第二線程完成所述工作后,所述第二觸發(fā)單元304控制所述第二線程觸發(fā)所述第三線程,以使所述第三線程讀取性能數(shù)據(jù)。其中,所述觸發(fā)過程可以向被觸發(fā)對象發(fā)送指令,當被觸發(fā)對象接收到指令時,完成相應(yīng)工作。
[0101]當然,所述控制動作也可認為是觸發(fā)的動作,即向被控制對象發(fā)送相應(yīng)指令,當被控制對象接收到指令時,完成相應(yīng)工作。
[0102]需要說明的是,第一觸發(fā)單元303與第二觸發(fā)單元304或所述第三觸發(fā)單元305可同時進行工作,以實現(xiàn)在所述第二線程將產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中或所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)的同時,所述第一線程監(jiān)測是否產(chǎn)生性能數(shù)據(jù)。
[0103]由以上的技術(shù)方案可知,本實施例提供了一種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測裝置,該裝置通過接收用戶發(fā)送的監(jiān)測指令,依據(jù)該監(jiān)測指令,創(chuàng)建第一線程、第二線程及第三線程,觸發(fā)該第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù),若是,控制該第一線程觸發(fā)該第二線程,由該第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中,控制該第二線程觸發(fā)該第三線程,由該第三線程讀取該監(jiān)測隊列中的性能數(shù)據(jù),繼續(xù)執(zhí)行觸發(fā)該第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù)。
[0104]需要說明的是,國產(chǎn)環(huán)境下生產(chǎn)的CPU模塊具有核數(shù)多的特點,通過本申請?zhí)峁┑姆椒?,?chuàng)建的所述三個線程可以同時運行在不同的內(nèi)核上,分別完成性能數(shù)據(jù)獲取過程不同的工作。本申請控制每一個線程完成各自的工作后去觸發(fā)下一個線程的執(zhí)行,實現(xiàn)了持續(xù)不斷地在執(zhí)行監(jiān)測過程,相較于現(xiàn)有技術(shù)中使用單線程輪詢機制,即隔一段時間獲取一次監(jiān)控數(shù)據(jù),提高了線程的利用率,可以及時獲取產(chǎn)生的性能數(shù)據(jù),提高了監(jiān)測效率。
[0105]同時,觸發(fā)第一線程實時監(jiān)測性能數(shù)據(jù)的產(chǎn)生,所述第一線程可以與所述第二線程或所述第三線程同時進行,相較于現(xiàn)有技術(shù)中單線程獨自執(zhí)行獲取性能數(shù)據(jù),一方面進一步提高了監(jiān)測效率,另一方面提高了進程的利用率,降低資源消耗。
[0106]需要說明的是,上述實施例三的創(chuàng)建線程單元302創(chuàng)建第一線程、第二線程及第三線程的時間點并不作限制,即可以在接收到監(jiān)測指令時,同時或依次創(chuàng)建所述三個線程;也可以是在接收到監(jiān)測指令時創(chuàng)建第一線程,在所述第一線程監(jiān)測到所述服務(wù)器產(chǎn)生性能數(shù)據(jù)后創(chuàng)建第二線程,在所述第二線程將所述性能數(shù)據(jù)放入到所述監(jiān)測隊列后,創(chuàng)建第三線程。優(yōu)選的,選用第二種創(chuàng)建方式,即當使用某一線程前創(chuàng)建該線程,可以提高資源的利用率。相應(yīng)的,請參閱圖4,其示出了本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測裝置實施例四的部分結(jié)構(gòu)示意圖,以實現(xiàn)所述第二種創(chuàng)建方式。其中:
[0107]所述第一創(chuàng)建線程單元402分別與所述第一觸發(fā)單元403、第二觸發(fā)單元404相連,以實現(xiàn)當接收到監(jiān)測指令時,所述第一創(chuàng)建單元402創(chuàng)建第一線程,當所述第一觸發(fā)單元403監(jiān)測到產(chǎn)生性能數(shù)據(jù)時,所述第一創(chuàng)建單元402創(chuàng)建第二線程,當所述第二觸發(fā)單元404將性能數(shù)據(jù)放入到監(jiān)測隊列后,所述第一創(chuàng)建單元402創(chuàng)建第三線程。[0108]請參閱圖5,其示出了本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測裝置實施例五的部分結(jié)構(gòu)示意圖,本實施例在實施例三的基礎(chǔ)上還可以包括:第一預(yù)先設(shè)置單元501及第二預(yù)先設(shè)置單元502;其中:
[0109]所述第一預(yù)先設(shè)置單元501,用于預(yù)先設(shè)置閾值容量為Q的監(jiān)測隊列。
[0110]所述監(jiān)測隊列是內(nèi)存中的緩存區(qū)域,數(shù)據(jù)讀取速度較快,用于暫時存儲所述第二線程獲取的產(chǎn)生的性能數(shù)據(jù)。需要說明的是,所述第一預(yù)先設(shè)置單元并不是在每次對服務(wù)器的性能數(shù)據(jù)進行監(jiān)測的過程中都執(zhí)行動作,其只要在首次對服務(wù)器進行監(jiān)測前執(zhí)行預(yù)先設(shè)置監(jiān)測隊列的功能即可。當然,所述監(jiān)測隊列的容量是有限的,其閾值為Q,例如100條。
[0111]所述第二預(yù)先設(shè)置單元502,用于預(yù)先設(shè)置監(jiān)控文件。
[0112]所述監(jiān)控文件可以是txt格式或word格式的文本文件,當然,監(jiān)控文件的形式包括但并不限于上述兩種形式,現(xiàn)有技術(shù)中能存儲性能數(shù)據(jù)的各種格式的文件都屬于本申請的保護范圍。
[0113]同時,實施例三的第二觸發(fā)單元304可以包括:第一判斷子單元503、第一結(jié)果子單元504、第二結(jié)果子單元505、第三結(jié)果子單元506及第四結(jié)果子單元507。其中:
[0114]所述第一判斷子單元503,用于控制第一線程觸發(fā)所述第二線程,由第二線程判斷所述監(jiān)控文件中的性能數(shù)據(jù)與所述監(jiān)測隊列中的性能數(shù)據(jù)N之和是否大于等于所述閾值容量Q,獲得第一結(jié)果;當所述第一結(jié)果為是時,觸發(fā)所述第一結(jié)果子單元504 ;當所述第一結(jié)果為否時,觸發(fā)所述第二結(jié)果子單元505。
[0115]需要說明的是,所述第二預(yù)先設(shè)置單元502預(yù)先設(shè)置的監(jiān)控文件中初始時并不包含有性能數(shù)據(jù),當所述第三結(jié)果子單元506執(zhí)行完相應(yīng)動作后,所述監(jiān)控文件中即可包含有性能數(shù)據(jù)。
[0116]需要說明的是,所述第一判斷子單元503分別與所述第一結(jié)果子單元504及所述第二結(jié)果子單元505相連,當所述第一判斷子單元503獲得的第一結(jié)果為是時,向所述第一結(jié)果子單元504發(fā)送第一指令,以觸發(fā)所述第一結(jié)果子單元504執(zhí)行相應(yīng)動作,當所述第一結(jié)果為否時,向所述第二結(jié)果子單元504發(fā)送第二指令,以觸發(fā)所述第二結(jié)果子單元504執(zhí)行相應(yīng)動作。
[0117]對于所述第一判斷子單元503的判斷過程進行舉例說明。例如,所述第一預(yù)先設(shè)置單元501預(yù)先設(shè)定監(jiān)測隊列的閾值容量為100條,當前監(jiān)控文件中的性能數(shù)據(jù)為10條,當前所述監(jiān)測隊列中的性能數(shù)據(jù)N為40條,10加上40為50,并不大于等于所述閾值容量100,則所述第一判斷子單元503觸發(fā)所述第二結(jié)果子單元505 ;若預(yù)先設(shè)定監(jiān)測隊列的閾值容量為100條,當前監(jiān)控文件中的性能數(shù)據(jù)為50條,當前所述監(jiān)測隊列中的性能數(shù)據(jù)N為60條,50加上60為110,大于所述閾值容量100,則所述第一判斷子單元503觸發(fā)所述第一結(jié)果子單元504。
[0118]所述第一結(jié)果子單元504,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程從所述監(jiān)控文件中獲取Q-N條性能數(shù)據(jù)放入所述監(jiān)測隊列中,觸發(fā)實施例三的第三觸發(fā)單元305。
[0119]例如,所述第一預(yù)先設(shè)置單元501預(yù)先設(shè)定的監(jiān)測隊列的閾值容量Q為100條,當前所述監(jiān)測隊列中的性能數(shù)據(jù)N為60條,則所述第二線程從所述監(jiān)控文件中獲取100-60即40條性能數(shù)據(jù),放入所述第二預(yù)先設(shè)置單元502設(shè)置的監(jiān)測隊列中。[0120]需要說明的是,所述第二線程獲取過程可以是以數(shù)據(jù)流的形式一次性地讀取,也可以是分多次進行讀取。例如,一次讀取40條性能數(shù)據(jù),或分兩次每次讀取20條性能數(shù)據(jù)。
[0121]所述第二結(jié)果子單元505,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述監(jiān)控文件中的性能數(shù)據(jù)放入所述監(jiān)測隊列中,并判斷所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)與所述監(jiān)測隊列中的性能數(shù)據(jù)M之和是否大于等于所述閾值容量,獲得第二結(jié)果;當所述第二結(jié)果為是時,觸發(fā)所述第三結(jié)果子單元506;當所述第二結(jié)果為否時,觸發(fā)所述第四結(jié)果子單元507。
[0122]需要說明的是,所述第二結(jié)果子單元505分別與所述第三結(jié)果子單元506及所述第四結(jié)果子單元507相連,當所述第二結(jié)果子單元505獲得的第二結(jié)果為是時,向所述第三結(jié)果子單元506發(fā)送第三指令,以觸發(fā)所述第三結(jié)果子單元506執(zhí)行相應(yīng)動作,當所述第二結(jié)果為否時,向所述第四結(jié)果子單元507發(fā)送第四指令,以觸發(fā)所述第四結(jié)果子單元507執(zhí)行相應(yīng)動作。
[0123]當前監(jiān)測隊列中的性能數(shù)據(jù)與監(jiān)控文件中的性能數(shù)據(jù)之和小于所述監(jiān)測隊列的閾值容量時,觸發(fā)本單元執(zhí)行工作。所述第二結(jié)果子單元505首先將監(jiān)控文件中的性能數(shù)據(jù)放入到監(jiān)控隊列中,所述監(jiān)控隊列中的性能數(shù)據(jù)由N增加為M,并由所述第二線程進一步判斷實施例三的第二觸發(fā)單元303觸發(fā)的所述第一線程監(jiān)測到的服務(wù)器產(chǎn)生的所述性能數(shù)據(jù)與監(jiān)測隊列中增加以后的性能數(shù)據(jù)M之和是否大于等于閾值容量Q,若是,觸發(fā)所述第三結(jié)果子單元506,否則觸發(fā)所述第四結(jié)果子單元507。
[0124]例如,所述第一預(yù)先設(shè)置單元501預(yù)先設(shè)定的監(jiān)測隊列的閾值容量Q為100條,當前監(jiān)控文件中的性能數(shù)據(jù)為20條,當前所述監(jiān)測隊列中的性能數(shù)據(jù)N為40條,所述第二結(jié)果子單元505控制所述第一線程觸發(fā)所述第二線程,由第二線程將所述20條性能數(shù)據(jù)放入所述監(jiān)測隊列中,所述監(jiān)測隊列中的性能數(shù)據(jù)M為60條,若所述第一線程監(jiān)測到產(chǎn)生的性能數(shù)據(jù)為30條,60加上30為90,小于100,觸發(fā)所述第三結(jié)果子單元506 ;若所述第一線程監(jiān)測到產(chǎn)生的性能數(shù)據(jù)為200條,60加上200,大于100,觸發(fā)所述第四結(jié)果子單元507。
[0125]所述第三結(jié)果子單元506,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程從所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)中獲取Q-M條性能數(shù)據(jù)放入所述監(jiān)測隊列中,并將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)中的剩余性能數(shù)據(jù)放入所述監(jiān)控文件中,觸發(fā)實施例三的第三觸發(fā)單元305。
[0126]所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)為實施例三的第一觸發(fā)單元303觸發(fā)的第一線程監(jiān)測到的服務(wù)器產(chǎn)生的所述性能數(shù)據(jù)。
[0127]例如,所述第一預(yù)先設(shè)置單元501預(yù)先設(shè)定的監(jiān)測隊列的閾值容量Q為100條,所述第一線程監(jiān)測到產(chǎn)生的性能數(shù)據(jù)為200條,所述第二線程從中獲取100-60即40條性能數(shù)據(jù),所述第三結(jié)果子單元506控制第一線程觸發(fā)所述第二線程,由所述第二線程將獲取的所述40條數(shù)據(jù)放入所述監(jiān)測隊列中,并將200-40即160條性能數(shù)據(jù)放入到監(jiān)控文件中。
[0128]當然,所述監(jiān)控文件相較于監(jiān)測隊列,為大容量的存儲單元,用于暫時存儲服務(wù)器產(chǎn)生的所述性能數(shù)據(jù)。兩者相比,所述監(jiān)測隊列中的性能數(shù)據(jù)被直接讀取進行顯示,所述監(jiān)測隊列中數(shù)據(jù)讀取速度較快。
[0129]所述第四結(jié)果子單元507,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入所述監(jiān)測隊列中,觸發(fā)所述實施例三的第三觸發(fā)單元 305。
[0130]當前監(jiān)測隊列中的性能數(shù)據(jù)M與監(jiān)控文件中的性能數(shù)據(jù)之和小于所述監(jiān)測隊列的閾值容量時,觸發(fā)本單元執(zhí)行工作,即所述第四結(jié)果子單元507直接將所述實施例三的第一觸發(fā)單元303監(jiān)測到的所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到監(jiān)測隊列中。
[0131]例如,所述監(jiān)測隊列中的性能數(shù)據(jù)M為60條,若所述第一線程監(jiān)測到產(chǎn)生的性能數(shù)據(jù)為30條,60加上30為90,小于100,所述第四結(jié)果子單元507將所述30條性能數(shù)據(jù)直接放入所述監(jiān)測隊列中。
[0132]需要說明的是,上述各個單元中的相應(yīng)觸發(fā)動作,可以認為是向被觸發(fā)對象發(fā)送指令,以使所述被觸發(fā)對象完成相應(yīng)工作。同樣的,所述各個單元中的相應(yīng)控制動作也可以認為是觸發(fā)動作,即向被控制對象發(fā)送指令,以使所述被控制對象完成相應(yīng)工作。
[0133]由以上的技術(shù)方案可知,本實施例提供的一種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測裝置中,第一預(yù)先設(shè)置單元預(yù)先設(shè)置的監(jiān)測隊列容量是有限的,即容量閾值為Q,則相應(yīng)的,由第二預(yù)先設(shè)置單元預(yù)先設(shè)置監(jiān)測文件,用于暫存服務(wù)器產(chǎn)生的多余的性能數(shù)據(jù)。當?shù)谝挥|發(fā)單元觸發(fā)第一線程監(jiān)測到有新的性能數(shù)據(jù)產(chǎn)生時,第二結(jié)果子單元首先將監(jiān)測文件中的性能數(shù)據(jù)放入到監(jiān)測隊列中,若所述監(jiān)測隊列達到閾值,所述第二結(jié)果子單元控制第二線程觸發(fā)第三線程進行性能數(shù)據(jù)的讀??;若所述監(jiān)測隊列沒有達到閾值,且所述服務(wù)器產(chǎn)生的新的性能數(shù)據(jù)較多時,則所述第三結(jié)果子單元控制第一線程觸發(fā)第二線程將一部分放入到監(jiān)測隊列使監(jiān)測隊列達到閾值,將另一部分放入到監(jiān)測文件中暫存。
[0134]本實施例使用第一預(yù)先設(shè)置的監(jiān)測隊列存儲要讀取的少量數(shù)據(jù),監(jiān)測隊列讀取速度快,可以快速地將所述性能數(shù)據(jù)進行讀取,保證監(jiān)測過程的高效性。同時,使用第二預(yù)先設(shè)置單元設(shè)置的監(jiān)測文件對服務(wù)器產(chǎn)生的大量性能數(shù)據(jù)進行暫存,防止所述性能數(shù)據(jù)的丟失,保證監(jiān)測結(jié)果的準確性。
[0135]請參閱圖6,其示出了本申請?zhí)峁┑囊环N國產(chǎn)環(huán)境下服務(wù)器監(jiān)測裝置實施例六的部分結(jié)構(gòu)示意圖,實施三的第三觸發(fā)單元305可以有以下方式實現(xiàn):劃分子單元601及讀取子單元602。其中:
[0136]所述劃分子單元601,用于控制所述第二線程觸發(fā)所述第三線程,由所述第三線程將所述監(jiān)測隊列中的性能數(shù)據(jù)分為多個性能數(shù)據(jù)塊;
[0137]所述讀取子單元602,用于控制所述第二線程觸發(fā)所述第三線程,由所述第三線程依次讀取所述各個性能數(shù)據(jù)塊。
[0138]該實現(xiàn)方式中,控制所述第二線程觸發(fā)所述第三線程,由所述第三線程多次讀取所述監(jiān)測隊列中的性能數(shù)據(jù),可以減輕每次數(shù)據(jù)傳輸過程中的傳輸負擔(dān)。
[0139]上述各個裝置的實施例,還可以包括顯示性能數(shù)據(jù)的顯示單元,即將所述第三線程讀取的所述性能數(shù)據(jù)進行顯示,以供有關(guān)人員進行分析,從而得到所述服務(wù)器的運行狀態(tài),為對所述服務(wù)器工作參數(shù)的設(shè)置提供依據(jù)。所述顯示單元顯示性能數(shù)據(jù)的方式,可以為圖或表格的形式,當然,包括并不限定于以上兩種方式。
[0140]需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0141]以上對本發(fā)明所提供的一種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法及裝置進行了詳細介紹,對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【權(quán)利要求】
1.一種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測方法,其特征在于,包括: 接收用戶發(fā)送的監(jiān)測指令; 依據(jù)接收到的監(jiān)測指令,創(chuàng)建第一線程、第二線程及第三線程; 觸發(fā)所述第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù); 若是,控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中,控制所述第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,預(yù)先設(shè)定監(jiān)測隊列的閾值容量為Q,預(yù)先設(shè)置有監(jiān)控文件,其中:所述控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中,包括: 控制第一線程觸發(fā)所述第二線程,由第二線程判斷所述監(jiān)控文件中的性能數(shù)據(jù)與所述監(jiān)測隊列中的性能數(shù)據(jù)N之和是否大于等于所述閾值容量Q,獲得第一結(jié)果; 當所述第一結(jié)果為是時,控制所述第一線程觸發(fā)所述第二線程,由所述第二線程從所述監(jiān)控文件中獲取Q-N條性能數(shù)據(jù)放入所述監(jiān)測隊列中; 當所述第一結(jié)果為否時, 控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述監(jiān)控文件中的性能數(shù)據(jù)放入所述監(jiān)測隊列中,并判斷所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)與所述監(jiān)測隊列中的性能數(shù)據(jù)M之和是否大于等于所述閾值容量,獲得第二結(jié)果; 當所述第二結(jié)果為是時,控制所述第一線程觸發(fā)所述第二線程,由所述第二線程從所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)中獲取Q-M條性能數(shù)據(jù)放入所述監(jiān)測隊列中,并將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)中的剩余性能數(shù)據(jù)放入所述監(jiān)控文件中; 當所述第二結(jié)果為否時,控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入所述監(jiān)測隊列中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述控制第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù),包括: 控制所述第二線程觸發(fā)所述第三線程,由所述第三線程將所述監(jiān)測隊列中的性能數(shù)據(jù)分為多個性能數(shù)據(jù)塊; 控制所述第二線程觸發(fā)所述第三線程,由所述第三線程依次讀取所述各個性能數(shù)據(jù)塊。
4.根據(jù)權(quán)利要求1至3任意一項所述的方法,其特征在于,在所述控制第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)之后,還包括: 將所述第三線程讀取的所述監(jiān)測隊列中的性能數(shù)據(jù)進行顯示。
5.一種國產(chǎn)環(huán)境下服務(wù)器監(jiān)測裝置,其特征在于,包括: 接收指令單元,用于接收用戶發(fā)送的監(jiān)測指令; 創(chuàng)建線程單元,用于依據(jù)接收到的監(jiān)測指令,創(chuàng)建第一線程、第二線程及第三線程;第一觸發(fā)單元,用于觸發(fā)所述第一線程實時監(jiān)測所述服務(wù)器是否產(chǎn)生性能數(shù)據(jù);若是,觸發(fā)第二觸發(fā)單元; 第二觸發(fā)單元,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)放入到預(yù)先設(shè)置的監(jiān)測隊列中,觸發(fā)第三觸發(fā)單元; 第三觸發(fā)單元,用于控制所述第二線程觸發(fā)所述第三線程,由所述第三線程讀取所述監(jiān)測隊列中的性能數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,還包括: 第一預(yù)先設(shè)置單元,用于預(yù)先設(shè)置閾值容量為Q的監(jiān)測隊列; 第二預(yù)先設(shè)置單元,用于預(yù)先設(shè)置監(jiān)控文件。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第二觸發(fā)單元包括: 第一判斷子單元,用于控制第一線程觸發(fā)所述第二線程,由第二線程判斷所述監(jiān)控文件中的性能數(shù)據(jù)與所述監(jiān)測隊列中的性能數(shù)據(jù)N之和是否大于等于所述閾值容量Q,獲得第一結(jié)果;當所述第一結(jié)果為是時,觸發(fā)第一結(jié)果子單元;當所述第一結(jié)果為否時,觸發(fā)第二結(jié)果單兀; 第一結(jié)果子單元,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程從所述監(jiān)控文件中獲取Q-N條性能數(shù)據(jù)放入所述監(jiān)測隊列中; 第二結(jié)果子單元,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述監(jiān)控文件中的性能數(shù)據(jù)放入所述監(jiān)測隊列中,并判斷所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)與所述監(jiān)測隊列中的性能數(shù)據(jù)M之和是否大于等于所述閾值容量,獲得第二結(jié)果;當所述第二結(jié)果為是時,觸發(fā)第三結(jié)果子單元;當所述第二結(jié)果為否時,觸發(fā)第四結(jié)果子單元; 第三結(jié)果子單元,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程從所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)中獲取Q-M條性能數(shù)據(jù)放入所述監(jiān)測隊列中,并將所述服務(wù)器產(chǎn)生的性能數(shù)據(jù)中的剩余性能數(shù)據(jù)放入所述監(jiān)控文件中; 第四結(jié)果子單元,用于控制所述第一線程觸發(fā)所述第二線程,由所述第二線程將所述服務(wù)器產(chǎn)生的性能數(shù) 據(jù)放入所述監(jiān)測隊列中。
8.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述第三觸發(fā)單元包括: 劃分子單元,用于控制所述第二線程觸發(fā)所述第三線程,由所述第三線程將所述監(jiān)測隊列中的性能數(shù)據(jù)分為多個性能數(shù)據(jù)塊; 讀取子單元,用于控制所述第二線程觸發(fā)所述第三線程,由所述第三線程依次讀取所述各個性能數(shù)據(jù)塊。
9.根據(jù)權(quán)利要求5至8任意一項所述的裝置,其特征在于,還包括: 顯示單元,用于將所述第三線程讀取的所述監(jiān)測隊列中的性能數(shù)據(jù)進行顯示。
【文檔編號】G06F11/30GK103631694SQ201310669832
【公開日】2014年3月12日 申請日期:2013年12月10日 優(yōu)先權(quán)日:2013年12月10日
【發(fā)明者】厲穎, 吳石磊, 翟魯超, 車帥, 何忠勝, 王毅 申請人:山東中創(chuàng)軟件工程股份有限公司