本技術(shù)涉及存儲,特別是涉及一種請求調(diào)度方法、裝置、設(shè)備、存儲介質(zhì)和程序產(chǎn)品。
背景技術(shù):
1、隨著計算機(jī)技術(shù)的飛速發(fā)展,存儲系統(tǒng)接收的請求數(shù)量越來越多,對請求的處理要求也越來越高。
2、相關(guān)技術(shù)中,在對多個請求進(jìn)行處理時,通常依賴于請求調(diào)度模型對每個請求進(jìn)行入隊和出隊操作,根據(jù)請求的出隊順序,對各請求進(jìn)行調(diào)度。
3、然而,在高并發(fā)環(huán)境下,相關(guān)技術(shù)中對請求的調(diào)度存在調(diào)度不合理的問題,無法保障存儲系統(tǒng)的服務(wù)質(zhì)量最低性能。
技術(shù)實現(xiàn)思路
1、基于此,有必要針對上述技術(shù)問題,提供一種能夠請求調(diào)度方法、裝置、設(shè)備、存儲介質(zhì)和程序產(chǎn)品,提升調(diào)度存儲系統(tǒng)請求的調(diào)度合理性,進(jìn)而保障存儲系統(tǒng)最低服務(wù)質(zhì)量性能。
2、第一方面,本技術(shù)提供了一種請求調(diào)度方法,該方法包括:
3、響應(yīng)于存儲系統(tǒng)當(dāng)前傳入的多個請求,根據(jù)存儲系統(tǒng)的令牌填充數(shù)量、存儲系統(tǒng)的并發(fā)調(diào)度上限和存儲系統(tǒng)的緩存調(diào)度隊列中請求數(shù)量,將多個請求劃分為可調(diào)度請求和待調(diào)度請求;
4、將待調(diào)度請求存儲至緩存調(diào)度隊列中;
5、對可調(diào)度請求進(jìn)行調(diào)度。
6、本技術(shù)實施例提供的技術(shù)方案中,響應(yīng)于存儲系統(tǒng)當(dāng)前傳入的多個請求,根據(jù)存儲系統(tǒng)的令牌填充數(shù)量、存儲系統(tǒng)的并發(fā)調(diào)度上限和存儲系統(tǒng)的緩存調(diào)度隊列中請求數(shù)量,將多個請求劃分為可調(diào)度請求和待調(diào)度請求,接著將待調(diào)度請求存儲至緩存調(diào)度隊列中,對可調(diào)度請求進(jìn)行調(diào)度。該方法中,根據(jù)存儲系統(tǒng)的令牌填充數(shù)量、存儲系統(tǒng)的并發(fā)調(diào)度上限以及存儲系統(tǒng)的緩存調(diào)度隊列中請求數(shù)量,對當(dāng)前傳入的多個請求和緩存調(diào)度隊列中的請求進(jìn)行分類,相當(dāng)于綜合考慮了存儲系統(tǒng)的性能保障下限、并發(fā)處理上限以及緩存調(diào)度隊列中的關(guān)鍵請求在內(nèi)的多維因素,確定各請求的調(diào)度優(yōu)先級,為當(dāng)前傳入的多個請求和緩存調(diào)度隊列中的請求靈活且精準(zhǔn)地分配更為客觀準(zhǔn)確的調(diào)度優(yōu)先級,確保可調(diào)度請求能夠順利完成調(diào)度,保障服務(wù)質(zhì)量最低性能。接著,將確定出來的可調(diào)度請求及時進(jìn)行調(diào)度處理,提升調(diào)度效率,同時滿足存儲系統(tǒng)的服務(wù)質(zhì)量最低性能;將確定出來的待調(diào)度請求存儲至緩存調(diào)度隊列,以便于下一輪調(diào)度時,滿足下一調(diào)度周期的服務(wù)質(zhì)量最低性能,以此不斷輪轉(zhuǎn),持續(xù)保障存儲系統(tǒng)的服務(wù)質(zhì)量最低性能。
7、在其中一個實施例中,根據(jù)存儲系統(tǒng)的令牌填充數(shù)量、存儲系統(tǒng)的并發(fā)調(diào)度上限和存儲系統(tǒng)的緩存調(diào)度隊列中請求數(shù)量,將多個請求劃分為可調(diào)度請求和待調(diào)度請求,包括:
8、根據(jù)存儲系統(tǒng)的服務(wù)質(zhì)量策略對應(yīng)的預(yù)留令牌桶,對多個請求中的目標(biāo)請求分發(fā)令牌;目標(biāo)請求表示與令牌填充數(shù)量匹配的請求;
9、根據(jù)并發(fā)調(diào)度上限、緩存調(diào)度隊列中的請求和目標(biāo)請求,確定可調(diào)度請求和待調(diào)度請求。
10、本技術(shù)實施例提供的技術(shù)方案中,據(jù)存儲系統(tǒng)的服務(wù)質(zhì)量策略對應(yīng)的預(yù)留令牌桶,從多個請求中篩分出目標(biāo)請求,并為多個請求中的目標(biāo)請求分發(fā)令牌,根據(jù)并發(fā)調(diào)度上限,從緩存調(diào)度隊列和目標(biāo)請求中確定出與并發(fā)調(diào)度上限匹配的可調(diào)度請求,以保障可調(diào)度請求能夠得以及時調(diào)度和處理,提升請求調(diào)度的有效性。
11、在其中一個實施例中,緩存調(diào)度隊列包括下限保障隊列,根據(jù)并發(fā)調(diào)度上限、緩存調(diào)度隊列中的請求和目標(biāo)請求,確定可調(diào)度請求和待調(diào)度請求,包括:
12、若并發(fā)調(diào)度上限大于下限保障隊列中請求的數(shù)量,則獲取并發(fā)調(diào)度上限與下限保障隊列中請求的數(shù)量之間的第一請求差值;
13、在目標(biāo)請求的數(shù)量大于或等于第一請求差值的情況下,將下限保障隊列中的請求、目標(biāo)請求中與第一請求差值匹配的第一請求,確定為可調(diào)度請求;以及,將目標(biāo)請求中除第一請求的第二請求、多個請求中除目標(biāo)請求之外的其他請求均確定為待調(diào)度請求。
14、本技術(shù)實施例提供的技術(shù)方案中,在并發(fā)調(diào)度上限大于下限保障隊列中請求的數(shù)量的情況下,將下限保障隊列中的請求確定為可調(diào)度請求,并根據(jù)并發(fā)調(diào)度上限與下限保障隊列中請求的數(shù)量之間的第一請求差值,從目標(biāo)請求中再次確定出與第一請求差值匹配的第一請求作為可調(diào)度請求,使得可調(diào)度請求的數(shù)量與并發(fā)調(diào)度上限一致,以最大化利用系統(tǒng)的并發(fā)資源,充分發(fā)揮并發(fā)處理能力。
15、在其中一個實施例中,緩存調(diào)度隊列還包括普通隊列;根據(jù)并發(fā)調(diào)度上限、緩存調(diào)度隊列中的請求和目標(biāo)請求,確定可調(diào)度請求和待調(diào)度請求,包括:
16、在目標(biāo)請求的數(shù)量小于第一請求差值的情況下,獲取目標(biāo)請求的數(shù)量與第一請求差值之間的第二請求差值;
17、根據(jù)預(yù)留令牌桶中的剩余令牌,為普通隊列中與第二請求差值匹配的請求分發(fā)令牌;
18、將下限保障隊列中的請求、目標(biāo)請求、普通隊列中與第二請求差值匹配的請求,均確定為可調(diào)度請求;以及,將普通隊列中剩余的請求確定為待調(diào)度請求。
19、本技術(shù)實施例提供的技術(shù)方案中,在目標(biāo)請求的數(shù)量小于第一請求差值,將下限保障隊列中的請求、目標(biāo)請求均確定為可調(diào)度請求,并根據(jù)目標(biāo)請求的數(shù)量與第一請求差值之間的第二請求差值,從普通隊列中再次確定出與第二請求差值匹配的請求作為可調(diào)度請求,使得可調(diào)度請求的數(shù)量盡可能接近并發(fā)調(diào)度上限,以最大化利用系統(tǒng)的并發(fā)資源,充分發(fā)揮并發(fā)處理能力。
20、在其中一個實施例中,緩存調(diào)度隊列包括下限保障隊列;根據(jù)并發(fā)調(diào)度上限、緩存調(diào)度隊列中的請求和目標(biāo)請求,確定可調(diào)度請求和待調(diào)度請求,包括:
21、若并發(fā)調(diào)度上限小于或等于下限保障隊列中請求的數(shù)量,則將下限保障隊列中與并發(fā)調(diào)度上限數(shù)量相匹配的請求,確定為可調(diào)度請求;以及,
22、將目標(biāo)請求和多個請求中除目標(biāo)請求之外的其他請求,均確定為待調(diào)度請求。
23、本技術(shù)實施例提供的技術(shù)方案中,在并發(fā)調(diào)度上限小于或等于下限保障隊列中請求的數(shù)量的情況下,將下限保障隊列中與并發(fā)調(diào)度上限數(shù)量相匹配的請求,確定為可調(diào)度請求,由于下限保障隊列中的請求為上一輪已經(jīng)分配令牌但未成功調(diào)度的請求,因此在此次調(diào)度時,無需進(jìn)行重復(fù)的隊列檢索與校驗操作,加快下限保障隊列中的請求出隊效率,有效減少了調(diào)度時延開銷。
24、在其中一個實施例中,緩存調(diào)度隊列包括下限保障隊列和候選隊列;將待調(diào)度請求存儲至緩存調(diào)度隊列中,包括:
25、對于任一待調(diào)度請求,若待調(diào)度請求已分配令牌,則將待調(diào)度請求存儲至下限保障隊列中;
26、若待調(diào)度請求未分配令牌,則將待調(diào)度請求存儲至候選隊列中。
27、本技術(shù)實施例提供的技術(shù)方案中,根據(jù)待調(diào)度請求是否分配令牌,將待調(diào)度請求細(xì)分為可直接調(diào)度的請求和需要分配令牌再進(jìn)行調(diào)度的請求,以便于在下一輪請求調(diào)度處理時,對不同隊列中的待調(diào)度請求進(jìn)行不同的處理,進(jìn)而提升請求調(diào)度效率。
28、在其中一個實施例中,候選隊列包括普通隊列和等待隊列,將待調(diào)度請求存儲至候選隊列中,包括:
29、獲取存儲系統(tǒng)的全局令牌桶;
30、若全局令牌桶中的令牌數(shù)量滿足預(yù)設(shè)條件,則將待調(diào)度請求存儲至普通隊列;
31、若全局令牌桶中的令牌數(shù)量不滿足預(yù)設(shè)條件,則將待調(diào)度請求存儲至等待隊列。
32、本技術(shù)實施例提供的技術(shù)方案中,根據(jù)全局令牌桶中的令牌數(shù)量,確定未分配令牌的待調(diào)度請求所屬的隊列,在全局令牌桶中的令牌充足時,將待調(diào)度請求掛入普通隊列,待后續(xù)調(diào)度出隊;在全局令牌桶中的令牌不足時,將待調(diào)度請求掛入等待隊列,限制其調(diào)度,為下一輪調(diào)度提供了更可靠合理的調(diào)度依據(jù),保障調(diào)度處理過程得以順利且合理地進(jìn)行。
33、在其中一個實施例中,對可調(diào)度請求進(jìn)行調(diào)度,包括:
34、根據(jù)存儲系統(tǒng)的全局令牌桶,確定存儲系統(tǒng)中針對可調(diào)度請求的調(diào)度資源;
35、基于調(diào)度資源對可調(diào)度請求進(jìn)行調(diào)度。
36、本技術(shù)實施例提供的技術(shù)方案中,根據(jù)存儲系統(tǒng)的全局令牌桶,從整個存儲系統(tǒng)資源中精準(zhǔn)確定存儲系統(tǒng)中處理非下限保障請求的調(diào)度資源、處理下限保障請求的調(diào)度資源,以實現(xiàn)對保障下限保障請求的可調(diào)度請求的調(diào)度處理。
37、在其中一個實施例中,該方法還包括:
38、監(jiān)測存儲系統(tǒng)的性能損失值;
39、若性能損失值小于損失臨界值,則按照預(yù)設(shè)的令牌遞減序列減少全局令牌桶中的令牌數(shù)量;
40、若性能損失值大于損失上限值,則按照預(yù)設(shè)的令牌遞增序列提升全局令牌桶中的令牌數(shù)量。
41、本技術(shù)實施例提供的技術(shù)方案中,根據(jù)性能損失值與損失臨界值、損失上限值的比較結(jié)果,確定全局令牌桶的令牌填充策略,在性能損失值小于損失臨界值情況下,提升全局令牌桶中的令牌數(shù)量,以最大程度上達(dá)到下限保障目標(biāo),在性能損失值大于損失臨界值的情況下,減少全局令牌桶中的令牌數(shù)量,避免下限保障策略的性能超過下限值過高導(dǎo)致的整體性能失控,提升系統(tǒng)的穩(wěn)定性和可靠性。
42、第二方面,本技術(shù)還提供了一種請求調(diào)度裝置,包括:
43、請求響應(yīng)模塊,用于響應(yīng)于存儲系統(tǒng)當(dāng)前傳入的多個請求,根據(jù)存儲系統(tǒng)的令牌填充數(shù)量、存儲系統(tǒng)的并發(fā)調(diào)度上限和存儲系統(tǒng)的緩存調(diào)度隊列中請求數(shù)量,將多個請求劃分為可調(diào)度請求和待調(diào)度請求;
44、請求入隊模塊,用于將待調(diào)度請求存儲至緩存調(diào)度隊列中;
45、請求調(diào)度模塊,用于對可調(diào)度請求進(jìn)行調(diào)度。
46、第三方面,本技術(shù)還提供了一種計算機(jī)設(shè)備,包括存儲器和處理器,所述存儲器存儲有計算機(jī)程序,所述處理器執(zhí)行所述計算機(jī)程序時實現(xiàn)上述第一方面中任一項實施例中的方法的步驟。
47、第四方面,本技術(shù)還提供了一種計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,所述計算機(jī)程序被處理器執(zhí)行時實現(xiàn)上述第一方面中任一項實施例中的方法的步驟。
48、第五方面,本技術(shù)還提供了一種計算機(jī)程序產(chǎn)品,包括計算機(jī)程序,該計算機(jī)程序被處理器執(zhí)行時實現(xiàn)上述第一方面中任一項實施例中的方法的步驟。