發(fā)明實(shí)施例二提供的業(yè)務(wù)處理組中的CPU核的分組方法的流程圖,如圖4所示,本實(shí)施例的方法可以包括以下步驟:
[0050]步驟201、當(dāng)系統(tǒng)中的LUN個(gè)數(shù)小于業(yè)務(wù)處理組中的CPU核的個(gè)數(shù)時(shí),確定CPU分組個(gè)數(shù)為系統(tǒng)中的LUN個(gè)數(shù),為業(yè)務(wù)處理組中的CPU分組分配分組標(biāo)識(shí)。
[0051 ]通過比較系統(tǒng)中的LUN個(gè)數(shù)和業(yè)務(wù)處理組中的CPU核的個(gè)數(shù)的大小關(guān)系,在系統(tǒng)中的LUN個(gè)數(shù)小于業(yè)務(wù)處理組中的CPU核的個(gè)數(shù)時(shí),確定CPU分組個(gè)數(shù)等于系統(tǒng)中的LUN個(gè)數(shù),在確定CHJ分組個(gè)數(shù)后,為每個(gè)CPU分組分配一個(gè)分組標(biāo)識(shí),用于唯一標(biāo)識(shí)該CPU分組??蛇x的,CPU分組個(gè)數(shù)也可以大于或小于系統(tǒng)中LUN個(gè)數(shù),本發(fā)明并不對(duì)此進(jìn)行限制。
[0052]步驟202、將業(yè)務(wù)處理組中的CPU核分配給業(yè)務(wù)處理組中的CPU分組。
[0053]如何將業(yè)務(wù)處理組中的CPU核分配給各CPU分組,本實(shí)施例并不對(duì)此進(jìn)行限制。例如,當(dāng)業(yè)務(wù)處理組中的CPU核的個(gè)數(shù)為業(yè)務(wù)處理組中的CPU分組個(gè)數(shù)的整數(shù)倍時(shí),可以將業(yè)務(wù)處理組中的CPU核平均分配為每個(gè)CPU分組,例如,業(yè)務(wù)處理組中共有8個(gè)CPU核,CPU分組個(gè)數(shù)為4,那么每個(gè)CPU分組分配兩個(gè)CPU核,當(dāng)然,也可以不均分,各CPU分組的CPU核數(shù)例如為1、2、2、3。當(dāng)業(yè)務(wù)處理組中的CPU核的個(gè)數(shù)不為業(yè)務(wù)處理組中的CPU分組個(gè)數(shù)的整數(shù)倍時(shí),可以先為每個(gè)CPU分組分配相同數(shù)量的CPU核,然后,將剩余的CPU核按照CPU分組的標(biāo)識(shí)的先后順序,分給前幾個(gè)CPU分組,例如,業(yè)務(wù)處理組中的CPU核的個(gè)數(shù)7,CPU分組個(gè)數(shù)為4,那么先為每個(gè)CPU分組分配一個(gè)CPU核,將剩余的3個(gè)CPU分配給其中三個(gè)CPU分組,這樣,4個(gè)CPU分組中有三個(gè)CPU分組的CPU核數(shù)為2,一個(gè)CPU分組的CPU核數(shù)為I。
[0054]步驟203、將系統(tǒng)中的LUN平均分配給業(yè)務(wù)處理組中的每個(gè)CPU分組。
[0055]本實(shí)施例中假設(shè)CPU分組的個(gè)數(shù)等于系統(tǒng)中LUN的個(gè)數(shù),因此,將系統(tǒng)中的LUN平均分配給各CPU分組,每個(gè)CPU分組執(zhí)行一個(gè)LUN上的業(yè)務(wù)I/O請(qǐng)求。當(dāng)CPU分組的個(gè)數(shù)不等于系統(tǒng)中LUN的個(gè)數(shù)時(shí),可以按照預(yù)先設(shè)定的方式將系統(tǒng)中的LUN分配給各CPU分組執(zhí)行。
[0056]步驟204、記錄業(yè)務(wù)處理組中的每個(gè)CPU分組的分組標(biāo)識(shí)和LUN的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
[0057]本實(shí)施例提供的方法,分組方案實(shí)現(xiàn)簡(jiǎn)單,便于對(duì)CPU分組和LUN進(jìn)行管理。
[0058]在實(shí)施例一的基礎(chǔ)上,本發(fā)明實(shí)施例三提供一種業(yè)務(wù)處理組中的CPU核的分組方法,圖5為本發(fā)明實(shí)施例三提供的業(yè)務(wù)處理組中的CPU核的分組方法的流程圖,如圖5所示,本實(shí)施例的方法可以包括以下步驟:
[0059]步驟301、當(dāng)系統(tǒng)中的LUN個(gè)數(shù)大于業(yè)務(wù)處理組中的CPU核的個(gè)數(shù)時(shí),確定CPU分組個(gè)數(shù)為業(yè)務(wù)處理組中的(PU核的個(gè)數(shù),為業(yè)務(wù)處理組中的CPU分組分配分組標(biāo)識(shí)。
[0060]本實(shí)施例中,通過比較系統(tǒng)中的LUN個(gè)數(shù)和業(yè)務(wù)處理組中的CPU核的個(gè)數(shù)的大小關(guān)系,在系統(tǒng)中的LUN個(gè)數(shù)大于業(yè)務(wù)處理組中的CPU核的個(gè)數(shù)時(shí),確定CPU分組個(gè)數(shù)等于業(yè)務(wù)處理組中的CPU核的個(gè)數(shù),在確定CPU分組個(gè)數(shù)后,為每個(gè)CPU分組分配一個(gè)分組標(biāo)識(shí)??蛇x的,CPU分組個(gè)數(shù)也可以小于業(yè)務(wù)處理組中的CPU核的個(gè)數(shù)。
[0061 ] 步驟302、將業(yè)務(wù)處理組中的CPU核平均分配給業(yè)務(wù)處理組中的每個(gè)CPU分組。
[0062]本實(shí)施例中,假設(shè)CPU分組個(gè)數(shù)等于業(yè)務(wù)處理組中的CPU核的個(gè)數(shù),因此,將業(yè)務(wù)處理組中的CPU核平均分配給業(yè)務(wù)處理組中的各CPU分組,每個(gè)CPU分組中包括一個(gè)PCU分組。當(dāng)CPU分組個(gè)數(shù)小于業(yè)務(wù)處理組中的CPU核的個(gè)數(shù)時(shí),各CPU分組中包括的CPU核的個(gè)數(shù)可能不相同。
[0063 ] 步驟303、將系統(tǒng)中的LUN分配給業(yè)務(wù)處理組中的每個(gè)CPU分組。
[0064]如何將系統(tǒng)中的LUN分配給各CPU分組,本實(shí)施例并不對(duì)此進(jìn)行限制。例如,當(dāng)系統(tǒng)中的LUN個(gè)數(shù)為CPU分組個(gè)數(shù)的整數(shù)倍時(shí),可以將系統(tǒng)中的LUN平均分配為各CPU分組,例如,系統(tǒng)中共有8個(gè)LUN,CPU分組個(gè)數(shù)為4,那么每個(gè)CPU分組分配兩個(gè)LUN,當(dāng)然,也可以不均分,各CPU分組對(duì)應(yīng)的LUN個(gè)數(shù)例如為1、2、2、3。當(dāng)系統(tǒng)中的LUN個(gè)數(shù)不為CPU分組個(gè)數(shù)的整數(shù)倍時(shí),可以先為每個(gè)CPU分組分配相同數(shù)量的LUN,然后,將剩余的LUN按照CPU分組的標(biāo)識(shí)的先后順序,分給前幾個(gè)CPU分組,例如,系統(tǒng)中LUN個(gè)數(shù)為7,CPU分組個(gè)數(shù)為4,那么先為每個(gè)CPU分組分配一個(gè)LUN,將剩余的3個(gè)LUN分配給其中3個(gè)CPU分組,這樣,4個(gè)CPU分組中有3個(gè)CPU分組對(duì)應(yīng)的LUN個(gè)數(shù)為2,I個(gè)CPU分組對(duì)應(yīng)的LUN個(gè)數(shù)為I。
[0065]步驟304、記錄業(yè)務(wù)處理組中的每個(gè)CPU分組的分組標(biāo)識(shí)和LUN的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
[0066]本實(shí)施例提供的方法,分組方案實(shí)現(xiàn)簡(jiǎn)單,便于對(duì)CPU分組和LUN進(jìn)行管理。
[0067]在上述實(shí)施例一至實(shí)施例三的基礎(chǔ)上,還根據(jù)中斷的屬性對(duì)中斷處理組中的CPU核進(jìn)行分組,中斷處理組中的每個(gè)CPU分組用于對(duì)一種中斷進(jìn)行處理。例如,將中斷處理組分為兩個(gè)CPU組,一個(gè)CPU組用于對(duì)FC、SAS中斷進(jìn)行處理,另一個(gè)CPU組用于對(duì)PCIE中斷以及其他中斷進(jìn)行處理。
[0068]本發(fā)明實(shí)施例四提供一種CPU分組均衡方法,實(shí)現(xiàn)系統(tǒng)中CPU分組之間的負(fù)載均衡。圖6為本發(fā)明實(shí)施例四提供的分組均衡方法的流程圖,如圖6所示,本實(shí)施例提供的方法可以包括以下步驟:
[0069]步驟401、統(tǒng)計(jì)業(yè)務(wù)處理組中的每個(gè)CPU分組的CPU利用率以及中斷處理組中的每個(gè)CPU分組的CPU利用率。
[0070]CPU分組的CPU利用率= CPU分組中所有CPU核的CPU利用率之和/CPU分組中CPU核的個(gè)數(shù)。
[0071]步驟402、判斷系統(tǒng)中的CPU分組的CPU利用率是否滿足條件一和條件一中的任意一個(gè)。
[0072]系統(tǒng)中的CPU分組包括業(yè)務(wù)處理組中的CPU分組和中斷處理組中的CPU分組。條件一為:系統(tǒng)中的每個(gè)CPU分組的CPU利用率均大于第一閾值,條件二為:系統(tǒng)中的每個(gè)CPU分組的CPU利用率均小于第二閾值,第二閾值小于第一閾值,第一閾值例如為80 %,第二閾值例如為20 %。
[0073]如果系統(tǒng)中的CPU分組的CPU利用率滿足條件一和條件二中的任意一個(gè),則執(zhí)行步驟403,如果系統(tǒng)中的CPU分組的CPU利用率不滿足條件一和條件二中的任意一個(gè),則執(zhí)行步驟404。
[0074]步驟403、確定不對(duì)系統(tǒng)中的CPU分組包括的CPU核個(gè)數(shù)進(jìn)行調(diào)整。
[0075 ] 步驟404、判斷系統(tǒng)的CPU分組中CPU利用率最大的CPU分組和CPU利用率最小的CPU分組的CPU利用率的差值是否大于第三閾值。
[0076]其中,第三閾值大于第二閾值,且小于第一閾值,例如為30%,如果CPU利用率的差值不大于第三閾值,則執(zhí)行步驟403,如果CPU利用率的差值大于第三閾值,則執(zhí)行步驟405。
[0077]步驟405、確定對(duì)業(yè)務(wù)處理組中的CPU分組包括的CPU核個(gè)數(shù)進(jìn)行調(diào)整,將CPU利用率最小的CPU分組中的一個(gè)CPU核分配給CPU利用率最大的CPU分組。
[0078]步驟406、更新LUN與CPU分組的映射關(guān)系。
[0079]具體的,I/O請(qǐng)求的處理裝置首先判斷將一個(gè)CPU核分配給CPU利用率最大的CPU分組后,CPU利用率最小的CPU分組中CPU核的個(gè)數(shù)是否為零,如果CPU利用率最小的CPU分組中CPU核的個(gè)數(shù)為零,則刪除CPU利用率最小的CPU分組,并更新CPU利用率最大的CPU分組和LUN的對(duì)應(yīng)關(guān)系;如果CPU利用率最小的CPU分組中CPU核的個(gè)數(shù)不為零,則分別更新CPU利用率最大的CHJ分組和LUN的對(duì)應(yīng)關(guān)系,以及CPU利用率最小的CPU分組和LUN的對(duì)應(yīng)關(guān)系。
[0080]若系統(tǒng)中的CPU分組最后退化為一個(gè)大的CPU分組,則在當(dāng)前CPU分組的CPU利用率低于第二閾值(系統(tǒng)時(shí)間在夜間)時(shí)重新進(jìn)行分組,并設(shè)置新的CPU分組為活動(dòng)CPU分組,舊CPU分組為過期CPU分組。
[0081 ]本實(shí)施例的方法,通過統(tǒng)計(jì)業(yè)務(wù)處理組中的每個(gè)CPU分組的CPU利用率以及中斷處理組中的每個(gè)CPU分組的CPU利用率,根據(jù)系統(tǒng)中的CPU分組的CPU利用率,對(duì)系統(tǒng)中的CPU分組包括的CPU核個(gè)數(shù)進(jìn)行調(diào)整,使得各CPU分組之間負(fù)載均衡,能夠更好的發(fā)揮CPU的性能。
[0082]圖7為本發(fā)明實(shí)施例五提供的I/O請(qǐng)求的處理裝置的結(jié)構(gòu)示意圖,如圖7所示,本實(shí)施例提供的I/o請(qǐng)求的處理裝置包括:第一分組模塊11、第二分組模塊12、建立模塊13、第一確定模塊14、第二確定模塊15和發(fā)送模塊16。
[0083]第一分組模塊11,用于對(duì)系統(tǒng)中的N個(gè)中央處理單元CPU核進(jìn)行劃分,將M個(gè)CPU核劃分到中斷處理組,所述中斷處理組中的CPU核用于處理中斷輸入/輸出1/0,將N-M個(gè)CPU核劃分到業(yè)務(wù)處理組,所述業(yè)務(wù)處理組中的CPU核用于處理業(yè)務(wù)1/0,其中,M和N均為大于正整數(shù),且M小于N;