一種元數(shù)據(jù)負載統(tǒng)計方法與系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式文件系統(tǒng)領(lǐng)域,特別是涉及一種元數(shù)據(jù)負載統(tǒng)計方法與系統(tǒng)。
【背景技術(shù)】
[0002]目前,分布式文件系統(tǒng)已經(jīng)得到廣泛的生產(chǎn)應(yīng)用,分布式文件系統(tǒng)中元數(shù)據(jù)服務(wù)維護了整個文件系統(tǒng)的目錄空間,元數(shù)據(jù)為描述數(shù)據(jù)屬性的信息,而小文件應(yīng)用會產(chǎn)生大量的元數(shù)據(jù)操作,一般通過元數(shù)據(jù)集群來提升分布式文件系統(tǒng)元數(shù)據(jù)性能。
[0003]但元數(shù)據(jù)集群面臨的一個難題就是如何正確地統(tǒng)計元數(shù)據(jù)負載來有效的進行負載平衡。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明的主要目的在于提供一種元數(shù)據(jù)負載統(tǒng)計方法與系統(tǒng),可以準確高效地統(tǒng)計元數(shù)據(jù)負載。
[0005]為實現(xiàn)上述目的,本發(fā)明提供了一種元數(shù)據(jù)負載統(tǒng)計方法,應(yīng)用于用戶態(tài)的分布式文件系統(tǒng),包括:
[0006]獲取當(dāng)前MDS進程的元數(shù)據(jù)請求數(shù)量;
[0007]獲取所述當(dāng)前MDS進程所在的CPU核,計算CPU占用值;
[0008]獲取所述當(dāng)前MDS進程的內(nèi)存占用值;
[0009]根據(jù)所述元數(shù)據(jù)請求數(shù)量、所述CPU占用值和所述內(nèi)存占用值統(tǒng)計所述當(dāng)前MDS進程的元數(shù)據(jù)負載值。
[0010]優(yōu)選地,獲取當(dāng)前MDS進程的元數(shù)據(jù)請求數(shù)量之前還包括:
[0011]為元數(shù)據(jù)綁定對應(yīng)的操作系統(tǒng)的CPU核。
[0012]優(yōu)選地,所述元數(shù)據(jù)請求包括getattr、setattr、getxattr、setxattr、stat 和mkdir。
[0013]優(yōu)選地,計算CPU占用值包括:
[0014]得到所述當(dāng)前MDS進程占用所述CPU核的CPU占用率,將所述CPU占用率乘以100得到CPU占用值。
[0015]優(yōu)選地,根據(jù)所述元數(shù)據(jù)請求數(shù)量、所述CPU占用值和所述內(nèi)存占用值統(tǒng)計所述當(dāng)前MDS進程的元數(shù)據(jù)負載值包括:
[0016]將所述數(shù)據(jù)請求數(shù)量、所述CPU占用值和所述內(nèi)存占用值進行相加得到元數(shù)據(jù)負載值。
[0017]本發(fā)明還提供了一種元數(shù)據(jù)負載統(tǒng)計系統(tǒng),應(yīng)用于用戶態(tài)的分布式文件系統(tǒng),包括:
[0018]元數(shù)據(jù)請求數(shù)量確定模塊,用于獲取當(dāng)前MDS進程的元數(shù)據(jù)請求數(shù)量;
[0019]CPU占用值確定模塊,用于獲取所述當(dāng)前MDS進程所在的CPU核,計算CPU占用值;
[0020]內(nèi)存占用值確定模塊,用于獲取所述當(dāng)前MDS進程的內(nèi)存占用值;
[0021]元數(shù)據(jù)負載值統(tǒng)計模塊,用于根據(jù)所述元數(shù)據(jù)請求數(shù)量、所述CPU占用值和所述內(nèi)存占用值統(tǒng)計所述當(dāng)前MDS進程的元數(shù)據(jù)負載值。
[0022]優(yōu)選地,所述元數(shù)據(jù)負載統(tǒng)計系統(tǒng)還包括:
[0023]CPU核綁定模塊,用于為元數(shù)據(jù)綁定對應(yīng)的操作系統(tǒng)的CPU核。
[0024]優(yōu)選地,所述元數(shù)據(jù)請求包括getattr、setattr、getxattr、setxattr、stat 和mkdir。
[0025]優(yōu)選地,所述CPU占用值確定模塊具體用于:
[0026]獲取所述當(dāng)前MDS進程所在的CPU核,得到所述當(dāng)前MDS進程占用所述CPU核的CPU占用率,將所述CPU占用率乘以100得到CPU占用值。
[0027]優(yōu)選地,所述元數(shù)據(jù)負載值統(tǒng)計模塊具體用于:
[0028]將所述數(shù)據(jù)請求數(shù)量、所述CPU占用值和所述內(nèi)存占用值進行相加得到元數(shù)據(jù)負載值。
[0029]應(yīng)用本發(fā)明提供的一種元數(shù)據(jù)負載統(tǒng)計方法與系統(tǒng),應(yīng)用于用戶態(tài)的分布式文件系統(tǒng),獲取當(dāng)前MDS進程的元數(shù)據(jù)請求數(shù)量,獲取所述當(dāng)前MDS進程所在的CPU核,計算CPU占用值,獲取所述當(dāng)前MDS進程的內(nèi)存占用值,根據(jù)所述元數(shù)據(jù)請求數(shù)量、所述CPU占用值和所述內(nèi)存占用值統(tǒng)計所述當(dāng)前MDS進程的元數(shù)據(jù)負載值,本方法通過獲取了元數(shù)據(jù)負載的3個關(guān)鍵因素得到元數(shù)據(jù)進程的負載值,可以準確高效地進行元數(shù)據(jù)負載的統(tǒng)計。
【附圖說明】
[0030]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0031]圖1為本發(fā)明一種元數(shù)據(jù)負載統(tǒng)計方法實施例一的流程圖;
[0032]圖2為本發(fā)明一種元數(shù)據(jù)負載統(tǒng)計系統(tǒng)實施例二的結(jié)構(gòu)示意圖。
【具體實施方式】
[0033]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行
[0034]清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0035]實施例一:
[0036]本發(fā)明提供一種元數(shù)據(jù)負載統(tǒng)計方法,應(yīng)用于用戶態(tài)的分布式文件系統(tǒng),圖1示出了本發(fā)明元數(shù)據(jù)負載統(tǒng)計方法實施例一的流程圖,包括:
[0037]步驟S101:獲取當(dāng)前MDS進程的元數(shù)據(jù)請求數(shù)量;
[0038]獲取分布式文件系統(tǒng)元數(shù)據(jù)服務(wù)器端MDS進程當(dāng)前時刻元數(shù)據(jù)請求0P數(shù)量,MDS請求都是有關(guān)元數(shù)據(jù)的操作,包括getattr、setattr、getxattr、setxattr、stat和mkdir等操作,其中:
[0039]getattr語句用于返回一個Integer,此為一個文件、目錄、或文件夾的屬性;
[0040]setAttr語句用于為一個文件設(shè)置屬性信息;
[0041]getxattr語句用于列出擴展屬性所對應(yīng)的值;
[0042]setxattr語句用于設(shè)置擴展屬性;
[0043]sat語句用于返回一個與目標命名文件有關(guān)的信息結(jié)構(gòu);
[0044]mkdir語句用于創(chuàng)建指定的名稱的目錄。
[0045]步驟S102:獲取所述當(dāng)前MDS進程所在的CPU核,計算CPU占用值;
[0046]在處理元數(shù)據(jù)進程中直接綁定操作系統(tǒng)的一個CPU核,節(jié)省了尋找MDS進程占用哪個CPU核的時間,確定CPU核之后,得到所述當(dāng)前MDS進程占用所述CPU核的CPU占用率,將所述CPU占用率乘以100得到CPU占用值。
[0047]步驟S103:獲取所述當(dāng)前MDS進程的內(nèi)存占用值;
[0048]獲取當(dāng)前MDS進程占用內(nèi)存大小MEM。
[0049]步驟S104:根據(jù)所述元數(shù)據(jù)請求數(shù)量、所述CPU占用值和所述內(nèi)存占用值統(tǒng)計所述當(dāng)前MDS進程的元數(shù)據(jù)負載值。
[0050]將所述數(shù)據(jù)請求數(shù)量、所述CPU占用值和所述內(nèi)存占用值進行相加得到元數(shù)據(jù)負載值,設(shè)MDSWd為當(dāng)前MDS進程負載值,計算公式為:
[0051]MDSWd= 0P+CPU*100+MEM。
[0052]應(yīng)用本實施例提供的一種元數(shù)據(jù)負載統(tǒng)計方法,應(yīng)用于用