一種資源分配方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種資源分配方法和裝置。
【背景技術(shù)】
[0002] 通過虛擬化技術(shù)可以將一臺物理防火墻劃分成多臺邏輯防火墻,每臺邏輯防火墻 就稱為一個Context。對于用戶來說,每個Context就是一臺獨立的防火墻,方便管理和維 護;對于管理者來說,可以將一臺物理設(shè)備虛擬成多臺邏輯設(shè)備供不同的分支機構(gòu)使用,可 以保護現(xiàn)有投資,提高組網(wǎng)靈活性。
[0003] 如果設(shè)備上創(chuàng)建了多個Context,這些Context會共享物理防火墻的資源,比如 CPU、內(nèi)存、磁盤等,為了防止一個Context過多的占用資源,而導(dǎo)致其它Context無法運行, 需要限制Context對資源的使用。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供一種資源分配方法和裝置,以控制context內(nèi)業(yè)務(wù)進程的資源占用。
[0005] 根據(jù)本發(fā)明實施例的第一方面,提供一種資源分配方法,包括:
[0006] 接收資源分配請求,所述資源分配請求中包括context索引、業(yè)務(wù)進程號、以及請 求分配的資源量;
[0007] 判斷所述請求分配的資源量是否大于所述context索引對應(yīng)的目標(biāo)context的可 用資源量;
[0008] 若是,判斷所述目標(biāo)context內(nèi)是否存在低優(yōu)先級進程,所述低優(yōu)先級進程的優(yōu) 先級低于所述業(yè)務(wù)進程號對應(yīng)的目標(biāo)進程的優(yōu)先級;
[0009] 若存在,釋放所述低優(yōu)先級進程占用的所述目標(biāo)context的資源,直至釋放后的 所述目標(biāo)context的可用資源量大于或等于所述請求分配的資源量;
[0010] 從所述目標(biāo)context的可用資源中,為所述目標(biāo)進程分配與所述請求分配的資源 量等量的資源。
[0011] 根據(jù)本發(fā)明實施例的第二方面,提供一種資源分配裝置,包括:
[0012] 接收單元,用于接收資源分配請求,所述資源分配請求中包括context索引、業(yè)務(wù) 進程號、以及請求分配的資源量;
[0013] 判斷單元,用于判斷所述請求分配的資源量是否大于所述context索引對應(yīng)的目 標(biāo)context的可用資源量;
[0014] 所述判斷單元,還用于當(dāng)所述請求分配的資源量大于所述目標(biāo)context的可用資 源量時,判斷所述目標(biāo)context內(nèi)是否存在低優(yōu)先級進程,所述低優(yōu)先級進程的優(yōu)先級低 于所述業(yè)務(wù)進程號對應(yīng)的目標(biāo)進程的優(yōu)先級;
[0015] 釋放單元,用于當(dāng)所述目標(biāo)context內(nèi)存在低優(yōu)先級進程時,釋放所述低優(yōu)先級 進程占用的所述目標(biāo)context的資源,直至釋放后的所述目標(biāo)context的可用資源量大于 或等于所述請求分配的資源量;
[0016] 分配單元,用于從所述目標(biāo)context的可用資源中,為所述目標(biāo)進程分配與所述 請求分配的資源量等量的資源。
[0017] 應(yīng)用本發(fā)明實施例,通過為context內(nèi)的業(yè)務(wù)進程設(shè)置優(yōu)先級,當(dāng)高優(yōu)先級的業(yè) 務(wù)進程需要占用context的資源,而context的可用資源不足時,可以釋放低優(yōu)先級的業(yè)務(wù) 進程占用的資源,從而能夠使資源占用細(xì)化到業(yè)務(wù)粒度,保證context內(nèi)特定業(yè)務(wù)進程的 資源占用成功率,提高資源分配的靈活性。
【附圖說明】
[0018] 圖1是本發(fā)明實施例提供的一種資源分配方法的流程示意圖;
[0019] 圖2是本發(fā)明實施例提供的另一種資源分配方法的流程示意圖;
[0020] 圖3是本發(fā)明實施例提供的另一種資源分配方法的流程示意圖;
[0021] 圖4是本發(fā)明實施例提供的一種具體應(yīng)用場景的不意圖;
[0022] 圖5是本發(fā)明實施例提供的一種資源分配裝置的結(jié)構(gòu)示意圖;
[0023] 圖6是本發(fā)明實施例提供的另一種資源分配裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0024] 如果設(shè)備上創(chuàng)建了多個Context,這些Context會共享物理防火墻的資源,比如 CPU、內(nèi)存、磁盤等,為了防止一個Context過多的占用資源,而導(dǎo)致其它Context無法運行, 需要限制Context對資源的使用。
[0025] 當(dāng)前支持通過指定context的資源占用上限的方式來限制context對資源的使 用。以內(nèi)存為例,當(dāng)前系統(tǒng)有context a、context b,內(nèi)存分配上限分別為40%,40%, context a占用內(nèi)存到達(dá)40%后,context a再有業(yè)務(wù)申請內(nèi)存時,將內(nèi)存申請失敗。
[0026] 然而實踐發(fā)現(xiàn),上述資源占用控制方案中,只能從context粒度實現(xiàn)資源占用的 控制,而無法控制context內(nèi)業(yè)務(wù)進程的資源占用。
[0027] 為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實施例中的技術(shù)方案,并使本發(fā)明實 施例的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明實施例中技術(shù)方 案作進一步詳細(xì)的說明。
[0028] 請參見圖1,為本發(fā)明實施例提供的一種資源分配方法的流程示意圖,如圖1所 示,該資源分配方法可以包括以下步驟:
[0029] 步驟101、接收資源分配請求,該資源分配請求中包括context索引、業(yè)務(wù)進程號、 以及請求分配的資源量。
[0030] 本發(fā)明實施例中,上述方法的執(zhí)行主體可以為資源分配裝置,該資源分配裝置可 以應(yīng)用于物理防火墻(或稱為硬件防火墻)或配置有物理防火墻的設(shè)備,該物理防火墻通 過虛擬化技術(shù)被劃分為多個context。
[0031] 本發(fā)明實施例中,當(dāng)某context內(nèi)的某業(yè)務(wù)進程開始運行時,該業(yè)務(wù)進程需要向 資源分配裝置發(fā)送資源分配請求,以請求分配資源;其中,該資源分配請求中可以包括但不 限于用于標(biāo)識該業(yè)務(wù)進程所在context的context索引,用于標(biāo)識該業(yè)務(wù)進程的業(yè)務(wù)進程 號,以及該業(yè)務(wù)進程請求分配的資源量。
[0032] 本發(fā)明實施例中,資源可以包括硬件資源或軟件資源,其中,硬件資源可以包括但 不限于內(nèi)存、CPU(Center Process Unit,中央處理單元)、或磁盤空間等;軟件資源可以包 括但不限于會話數(shù)量或吞吐量等,本發(fā)明后續(xù)不再復(fù)述。
[0033] 步驟102、判斷該請求分配的資源量是否大于該context索引對應(yīng)的目標(biāo)context 的可用資源量;若判斷為是,轉(zhuǎn)至步驟103 ;否則,轉(zhuǎn)至步驟105。
[0034] 本發(fā)明實施例中,資源分配裝置接收到資源分配請求之后,可以根據(jù)該資源分 配請求中包括的context索引確定該context索引對應(yīng)的context (本文中稱為目標(biāo) context)的可用資源量。
[0035] 在一種實施方式中,物理防火墻劃分成的多個context可以擁有自己專屬的資 源,相應(yīng)地,在該實施方式中,目標(biāo)context的可用資源量為目標(biāo)context的資源總量與目 標(biāo)context內(nèi)當(dāng)前已被占用的資源量的差值。
[0036] 舉例來說,以資源為內(nèi)存為例,假設(shè)目標(biāo)context的內(nèi)存總量為10M,該目標(biāo) context內(nèi)當(dāng)前已被占用的內(nèi)存為5M,則該目標(biāo)context的可用內(nèi)存為5M(10M-5M = 5M)。
[0037] 在另一種實施方式中,物理防火墻劃分成的多個context可以共享物理防火墻的 資源,相應(yīng)地,在該實施方式中,若未指定各context的資源使用上限,則目標(biāo)context的可 用資源量為物理防火墻的資源總量與物理防火墻當(dāng)前已被占用的資源量的差值;若指定了 各context的資源使用上限,則目標(biāo)context的可用資源量為該目標(biāo)context的資源使用 上限與該目標(biāo)context內(nèi)當(dāng)前已被占用的資源量的差值。
[0038] 舉例來說,仍以資源為內(nèi)存為例,假設(shè)物理防火墻的內(nèi)存總量為100M,未指定各 context的內(nèi)存使用上限,且該物理防火墻當(dāng)前已被占用的內(nèi)存為20M,則目標(biāo)context的 可用內(nèi)存為 80M(100M-20M = 80M)。
[0039] 又舉例來說,仍以資源為內(nèi)存為例,假設(shè)物理防火墻的內(nèi)存總量為100M,指定目標(biāo) context的內(nèi)存使用上限為40%,且該目標(biāo)context內(nèi)當(dāng)前已被占用的內(nèi)存為20M,則目標(biāo) context 的可用內(nèi)存為 20M(100M*40% -20M = 20M)。
[0040] 本發(fā)明實施例中,資源分配裝置確定目標(biāo)context的可用資源量之后,可以判斷 資源分配請求中包括的請求分配的資源量是否大于目標(biāo)context的可用資源量。若大于, 則表明當(dāng)前目標(biāo)context沒有足夠的資源進行分配,資源分配裝置可以執(zhí)行步驟103~步 驟105 ;否則,表明當(dāng)前context有足夠的資源進行分配,資源分配裝置可以執(zhí)行步驟105。
[0041] 步驟103、判斷目標(biāo)context內(nèi)是否存在低優(yōu)先級進程,該低優(yōu)先級進程的優(yōu)先級 低于該業(yè)務(wù)進程號對應(yīng)的目標(biāo)進程的優(yōu)先級。若是,轉(zhuǎn)至步驟104 ;否則,結(jié)束當(dāng)前流程。
[0042] 本發(fā)明實施例中,可以預(yù)先為context內(nèi)的各業(yè)務(wù)進程設(shè)置優(yōu)先級,進行資源分 配時,可以按照業(yè)務(wù)進程的優(yōu)先級來分配。對同一時刻的業(yè)務(wù)處理請求,高優(yōu)先級的業(yè)務(wù)進 程優(yōu)先占用資源。
[0043] 優(yōu)選地,在本發(fā)明實施例中,可以根據(jù)業(yè)務(wù)進程對應(yīng)的業(yè)務(wù)的重要性(可以由用 戶根據(jù)具體場景確定或根據(jù)其它策略確定)設(shè)置業(yè)務(wù)進程的優(yōu)先級,其中,業(yè)務(wù)的重要性 越高,對應(yīng)的業(yè)務(wù)進程的優(yōu)先級越高,相應(yīng)地,其占用資源的優(yōu)先級也就越高,從而,可以有 效地保證在context內(nèi)資源不足的情況下,比較重要的業(yè)務(wù)對應(yīng)的業(yè)務(wù)進程能夠優(yōu)先占用 資源。
[0044] 本發(fā)明實施例中,當(dāng)資源分配裝置確定資源分配請求中包括的請求分配資源量大 于目標(biāo)context的可用資源量,即目標(biāo)context沒有足夠的資源進行分配時,資源分配裝置 可以根據(jù)資源分配請求中包括的業(yè)務(wù)進程號獲取該業(yè)務(wù)進程號對應(yīng)的業(yè)務(wù)進程(本文中 稱為目標(biāo)進程)的優(yōu)先級,并進一步判斷目標(biāo)context內(nèi)是否存在優(yōu)先級低于該目標(biāo)進程 的優(yōu)先級的業(yè)務(wù)進程(本文中稱為低優(yōu)先級進程),若存在,則執(zhí)行步驟104~步驟10