本公開涉及計(jì)算機(jī)科學(xué),具體涉及一種任務(wù)調(diào)度方法、裝置、電子設(shè)備和存儲介質(zhì)。
背景技術(shù):
1、在linux系統(tǒng)中,通常采用完全公平調(diào)度器(completely?fair?scheduler,cfs),其核心目標(biāo)是實(shí)現(xiàn)任務(wù)在cpu(centralprocessing?unit,中央處理單元)之間的公平分配,并最大化系統(tǒng)的整體吞吐量。
2、然而,由于各cpu上的負(fù)載具有動態(tài)性和不可預(yù)測,為維持cpu間的負(fù)載均衡,cfs會頻繁觸發(fā)負(fù)載均衡機(jī)制,如此,會導(dǎo)致任務(wù)在cpu之間頻繁遷移,當(dāng)任務(wù)遷移到新的cpu后,原有緩存數(shù)據(jù)失效,需要重新加載所需數(shù)據(jù)到新cpu的緩存中。
3、如此,頻繁的緩存失效會引發(fā)大量額外的內(nèi)存訪問,進(jìn)而增加系統(tǒng)功耗;同時,任務(wù)遷移本身也會帶來額外的能量消耗。此外,在高并發(fā)場景下,基于cfs調(diào)度器的任務(wù)調(diào)度策略可能導(dǎo)致多個cpu核心持續(xù)處于活躍狀態(tài),進(jìn)一步加劇系統(tǒng)的整體功耗。
4、因此,有必要提出一種任務(wù)調(diào)度方法,以解決上述至少一個技術(shù)問題。
技術(shù)實(shí)現(xiàn)思路
1、第一方面,本公開提供了一種任務(wù)調(diào)度方法,所述方法包括:
2、獲取預(yù)設(shè)的ebpf調(diào)度模塊,所述ebpf調(diào)度模塊包括調(diào)度域負(fù)載更新子模塊、調(diào)度域切換子模塊、調(diào)度域狀態(tài)調(diào)整子模塊;
3、利用所述調(diào)度域負(fù)載更新子模塊更新第一調(diào)度域的第一負(fù)載數(shù)據(jù),其中,所述第一調(diào)度域?yàn)楫?dāng)前執(zhí)行至少一個第一任務(wù)的調(diào)度域;
4、根據(jù)更新后第一負(fù)載數(shù)據(jù),確定所述第一調(diào)度域是否滿足調(diào)度域切換條件;
5、若滿足,利用所述調(diào)度域切換子模塊將所述至少一個第一任務(wù)切換至第二調(diào)度域執(zhí)行,以及,利用所述調(diào)度域狀態(tài)調(diào)整子模塊將所述第一調(diào)度域的狀態(tài)調(diào)整為空閑狀態(tài)。
6、在一些可選的實(shí)施方式中,所述方法還包括:
7、根據(jù)預(yù)設(shè)的調(diào)度域劃分策略,對至少一個cpu核心進(jìn)行層級化劃分,生成至少一個調(diào)度域,其中,每個調(diào)度域包括至少一個cpu核心且上層調(diào)度域包括下層調(diào)度域的全部cpu核心。
8、在一些可選的實(shí)施方式中,所述根據(jù)更新后第一負(fù)載數(shù)據(jù),確定所述第一調(diào)度域是否滿足調(diào)度域切換條件,包括:
9、當(dāng)所述更新后第一負(fù)載數(shù)據(jù)大于更新前第一負(fù)載數(shù)據(jù)時,判斷所述更新后第一負(fù)載數(shù)據(jù)是否大于等于調(diào)度域第一切換閾值;
10、若是,確定所述第一調(diào)度域滿足調(diào)度域切換條件;以及
11、所述利用所述調(diào)度域切換子模塊將所述至少一個第一任務(wù)切換至第二調(diào)度域執(zhí)行,包括:
12、利用所述調(diào)度域切換子模塊將所述至少一個第一任務(wù)切換至所述第一調(diào)度域的上層調(diào)度域執(zhí)行,并將所述第一調(diào)度域的上層調(diào)度域確定為所述第二調(diào)度域。
13、在一些可選的實(shí)施方式中,所述根據(jù)更新后第一負(fù)載數(shù)據(jù),確定所述第一調(diào)度域是否滿足調(diào)度域切換條件,包括:
14、當(dāng)所述更新后第一負(fù)載數(shù)據(jù)小于更新前第一負(fù)載數(shù)據(jù),判斷所述更新后第一負(fù)載數(shù)據(jù)是否小于調(diào)度域第二切換閾值,其中,所述調(diào)度域第二切換閾值小于所述調(diào)度域第一切換閾值;
15、若是,確定所述第一調(diào)度域滿足調(diào)度域切換條件;以及
16、所述利用所述調(diào)度域切換子模塊將所述至少一個第一任務(wù)切換至第二調(diào)度域執(zhí)行,包括:
17、利用所述調(diào)度域切換子模塊將所述至少一個第一任務(wù)切換至所述第一調(diào)度域的下層調(diào)度域執(zhí)行,并將所述第一調(diào)度域的下層調(diào)度域確定為所述第二調(diào)度域。
18、在一些可選的實(shí)施方式中,所述方法還包括:
19、當(dāng)所述第一調(diào)度域?yàn)榭臻e狀態(tài)時,切換所述第一調(diào)度域?yàn)楣?jié)能模式。
20、在一些可選的實(shí)施方式中,所述ebpf調(diào)度模塊還包括cpu核心負(fù)載更新子模塊、任務(wù)分配子模塊;
21、以及所述方法還包括:
22、當(dāng)?shù)诙蝿?wù)被喚醒時,利用所述cpu核心負(fù)載更新子模塊更新第三調(diào)度域內(nèi)各cpu核心的第二負(fù)載數(shù)據(jù),其中,所述第三調(diào)度域?yàn)樾鑸?zhí)行第二任務(wù)的調(diào)度域;
23、根據(jù)各更新后第二負(fù)載數(shù)據(jù),從第三調(diào)度域內(nèi)各cpu核心中確定需執(zhí)行所述第二任務(wù)的目標(biāo)cpu核心;
24、利用所述任務(wù)分配子模塊將所述第二任務(wù)分配至所述目標(biāo)cpu核心。
25、第二方面,本公開提供了一種任務(wù)調(diào)度裝置,裝置包括:
26、獲取單元,用于獲取預(yù)設(shè)的ebpf調(diào)度模塊,所述ebpf調(diào)度模塊包括調(diào)度域負(fù)載更新子模塊、調(diào)度域切換子模塊、調(diào)度域狀態(tài)調(diào)整子模塊;
27、更新單元,用于利用所述調(diào)度域負(fù)載更新子模塊更新第一調(diào)度域的第一負(fù)載數(shù)據(jù),其中,所述第一調(diào)度域?yàn)楫?dāng)前執(zhí)行至少一個第一任務(wù)的調(diào)度域;
28、確定單元,用于根據(jù)更新后第一負(fù)載數(shù)據(jù),確定所述第一調(diào)度域是否滿足調(diào)度域切換條件;
29、若滿足,處理單元,用于利用所述調(diào)度域切換子模塊將所述至少一個第一任務(wù)切換至第二調(diào)度域執(zhí)行,以及,利用所述調(diào)度域狀態(tài)調(diào)整子模塊將所述第一調(diào)度域的狀態(tài)調(diào)整為空閑狀態(tài)。
30、第三方面,本公開提供了一種電子設(shè)備,包括:
31、一個或多個處理器;
32、存儲裝置,其上存儲有一個或多個程序,
33、當(dāng)上述一個或多個程序被上述一個或多個處理器執(zhí)行時,使得上述一個或多個處理器實(shí)現(xiàn)如本公開第一方面任一實(shí)施方式描述的方法。
34、第四方面,本公開提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,其中,上述計(jì)算機(jī)程序被一個或多個處理器執(zhí)行時實(shí)現(xiàn)如本公開第一方面任一實(shí)施方式描述的方法。
35、第五方面,本公開提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序/指令,所述計(jì)算機(jī)程序/指令被處理器執(zhí)行時實(shí)現(xiàn)如本公開第一方面任一實(shí)施方式描述的方法。
36、本公開的實(shí)施例提供的任務(wù)調(diào)度方法,獲取預(yù)設(shè)的ebpf調(diào)度模塊,ebpf調(diào)度模塊包括調(diào)度域負(fù)載更新子模塊、調(diào)度域切換子模塊、調(diào)度域狀態(tài)調(diào)整子模塊;利用調(diào)度域負(fù)載更新子模塊更新第一調(diào)度域的第一負(fù)載數(shù)據(jù),其中,第一調(diào)度域?yàn)楫?dāng)前執(zhí)行第一任務(wù)的調(diào)度域;根據(jù)更新后第一負(fù)載數(shù)據(jù),確定第一調(diào)度域是否滿足調(diào)度域切換條件;若滿足,利用調(diào)度域切換子模塊將第一任務(wù)切換至第二調(diào)度域執(zhí)行,以及,利用調(diào)度域狀態(tài)調(diào)整子模塊將第一調(diào)度域的狀態(tài)調(diào)整為空閑狀態(tài)。本公開通過獲取預(yù)設(shè)的ebpf調(diào)度模塊,可以使系統(tǒng)根據(jù)cpu核心負(fù)載情況,動態(tài)調(diào)整調(diào)度域的配置,將任務(wù)集中調(diào)度至某一調(diào)度域,而將其他調(diào)度域切換為空閑狀態(tài),以使任務(wù)集中在部分cpu核心上運(yùn)行,使得閑置的cpu核心能夠快速進(jìn)入低功耗狀態(tài),從而可以顯著降低系統(tǒng)能耗。
1.一種任務(wù)調(diào)度方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)更新后第一負(fù)載數(shù)據(jù),確定所述第一調(diào)度域是否滿足調(diào)度域切換條件,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)更新后第一負(fù)載數(shù)據(jù),確定所述第一調(diào)度域是否滿足調(diào)度域切換條件,包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述ebpf調(diào)度模塊還包括cpu核心負(fù)載更新子模塊、任務(wù)分配子模塊;
7.一種任務(wù)調(diào)度裝置,其特征在于,所述裝置包括:
8.一種電子設(shè)備,其特征在于,包括:
9.一種計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,其上存儲有計(jì)算機(jī)程序,其中,計(jì)算機(jī)程序被一個或多個處理器執(zhí)行時實(shí)現(xiàn)如權(quán)利要求1-6中任一項(xiàng)的方法。
10.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,包括計(jì)算機(jī)程序/指令,所述計(jì)算機(jī)程序/指令被處理器執(zhí)行時實(shí)現(xiàn)如權(quán)利要求1-6中任一所述的方法。