蔡宇昂
(湖北警官學(xué)院,湖北 武漢 430000)
在分布式文件系統(tǒng)中,為了實(shí)現(xiàn)高性能和高并行,一個(gè)I/O操作通常被分割為若干個(gè)請(qǐng)求序列[1,2],這些請(qǐng)求被并行地發(fā)送到服務(wù)器端,導(dǎo)致存儲(chǔ)系統(tǒng)中涌現(xiàn)大量資源競(jìng)爭(zhēng),如存儲(chǔ)帶寬、磁盤訪問時(shí)間片等。在分布式文件系統(tǒng)中,設(shè)計(jì)一種I/O擁塞控制機(jī)制來協(xié)調(diào)和控制集群的I/O請(qǐng)求,保證系統(tǒng)高效運(yùn)行就顯得尤為重要。
LiYan等人在Remy基礎(chǔ)上,提出ASCAR[3]、CAPES[4],通過參數(shù)來控制分布式文件系統(tǒng)客戶端請(qǐng)求發(fā)送窗口,并基于機(jī)器學(xué)習(xí)進(jìn)行參數(shù)調(diào)優(yōu),從客戶端進(jìn)行自動(dòng)I/O擁塞控制。但有兩個(gè)不足:第一,調(diào)控只在客戶端進(jìn)行,未考慮到服務(wù)器端的情況;第二,調(diào)控的粒度是整個(gè)客戶端,無法有效協(xié)調(diào)應(yīng)用之間的資源競(jìng)爭(zhēng),調(diào)控效果有限,在某些特殊情況下無法充分利用系統(tǒng)的資源緩解擁塞狀況。 Yingjin Qian設(shè)計(jì)一種針對(duì)大規(guī)模集群的分布式動(dòng)態(tài) I/O擁塞控制機(jī)制[5,6]。該動(dòng)態(tài)I/O擁塞控制方案可以在服務(wù)器輕載時(shí),讓客戶端的應(yīng)用更多更快的并行發(fā)送 I/O 請(qǐng)求,以提高系統(tǒng)的資源利用率和性能;當(dāng)服務(wù)器處于過載狀態(tài),客戶端通過 I/O 節(jié)流機(jī)制,減少I/O請(qǐng)求發(fā)送的數(shù)量,降低發(fā)送速率,以避免服務(wù)器出現(xiàn)擁塞或者崩潰。但是該方案僅考慮到單個(gè)服務(wù)器節(jié)點(diǎn)上的負(fù)載情況,就對(duì)相應(yīng)連接的客戶端的請(qǐng)求進(jìn)行限制,在緩解當(dāng)前服務(wù)器端節(jié)點(diǎn)擁塞的情況下,可能同時(shí)影響了其它節(jié)點(diǎn);該方案的調(diào)節(jié)粒度是整個(gè)客戶端,在某些情況下無法充分地利用服務(wù)器資源,解決擁塞問題。 本文的主要工作如下:①提出從服務(wù)器端和客戶端同時(shí)著手,實(shí)現(xiàn)端到端的擁塞控制;②在客戶端基于應(yīng)用粒度分配I/O發(fā)送窗口,保證應(yīng)用間公平性,控制請(qǐng)求的發(fā)送數(shù)量和速度,既充分利用了服務(wù)資源,又盡可能地避免了服務(wù)器端的擁塞。
AIOCC針對(duì)分布式文件系統(tǒng)服務(wù)器端擁塞控制方案主要分為三部分:第一,客戶端發(fā)送窗口值分配算法,即如何根據(jù)服務(wù)器端負(fù)載的和資源情況,動(dòng)態(tài)地以客戶端粒度計(jì)算發(fā)送窗口值,保證客戶端間的公平性;第二,根據(jù)第一步計(jì)算的總體發(fā)送窗口值和應(yīng)用效率評(píng)估模型,評(píng)估各應(yīng)用的效率;第三,基于相應(yīng)的策略模型,通過NRS TBF策略執(zhí)行分配方案,保證應(yīng)用粒度的公平性,并將分配值捎帶在I/O RPC回復(fù)請(qǐng)求中反饋到客戶端,用以指導(dǎo)客戶端發(fā)送窗口值的分配(表1)。
表1 分布式文件系統(tǒng)擁塞狀況下應(yīng)用調(diào)度模型變量定義
定義APPk的效率評(píng)估模型:
(1)
一個(gè)I/O RPC請(qǐng)求從到達(dá)服務(wù)器端到完成I/O操作,除了I/O時(shí)間和排隊(duì)等待的時(shí)間,還包含I/O RPC請(qǐng)求建立連接、上下文切換開銷和資源競(jìng)爭(zhēng)處理時(shí)間,且設(shè)備的實(shí)際傳輸速率總是低于極限速率的,因此:
(2)
=(W(k,i)/Br+W(k,i)/Bd)/(Rk/Rt+W(k,i)/Br+W(k,i)/Bd)
(3)
分別建立以下兩個(gè)模型來評(píng)估系統(tǒng)的效率和隔離性。
在分布式文件系統(tǒng)客戶端,設(shè)置了max_rpcs_in_flight參數(shù),來控制從客戶端向服務(wù)器端發(fā)送請(qǐng)求的最大數(shù)目,客戶端的I/O操作都是以固定大小為單位進(jìn)行的,默認(rèn)為1MB,該值可以通過procfs(進(jìn)程文件系統(tǒng))調(diào)整。因而I/O的數(shù)據(jù)量和RPC請(qǐng)求的數(shù)據(jù)量正相關(guān),這為在設(shè)計(jì)實(shí)現(xiàn)AIOCC方案提供了便利,不需要再考慮數(shù)據(jù)傳輸?shù)臄?shù)據(jù)量計(jì)算問題。借鑒ASCAR方案,并進(jìn)一步細(xì)化參數(shù)設(shè)置,進(jìn)行客戶端發(fā)送窗口的控制。表2是相關(guān)參數(shù)定義。
表2 客戶端擁塞控制參數(shù)定義
在統(tǒng)計(jì)ewma時(shí),除了在客戶端粒度計(jì)算ewma判定整體的擁塞狀況外,還在應(yīng)用粒度分類計(jì)算每個(gè)應(yīng)用的ewmai,并設(shè)定判定擁塞狀態(tài)的閥值ewmamax,當(dāng)ewmai (4) 該策略基于ewmamax-ewmai比例分配客戶端的發(fā)送窗口,顯然ewmamax-ewmai越大,說明該應(yīng)用對(duì)應(yīng)的連接狀況越好,應(yīng)用將被分配更多的發(fā)送窗口,獲得更多發(fā)送請(qǐng)求的機(jī)會(huì),以提高系統(tǒng)的資源利用率。ewmamax-ewmai越小,說明該應(yīng)用對(duì)應(yīng)的連接狀況越差,應(yīng)用將被分配相對(duì)較少發(fā)送窗口,在差值小于等于0后甚至不分配發(fā)送窗口,以緩解擁塞狀況,當(dāng)該應(yīng)用對(duì)應(yīng)的連接擁塞狀況好轉(zhuǎn)后,將重新獲得發(fā)送請(qǐng)求的機(jī)會(huì)。 使用基準(zhǔn)測(cè)試程序FIO作為負(fù)載產(chǎn)生工具,并使用Telegraf、InfluxDB和Grafana對(duì)分布式文件系統(tǒng)構(gòu)建可視化的監(jiān)控系統(tǒng):Telegraf是一個(gè)單節(jié)點(diǎn)的性能指標(biāo)采集工具,負(fù)責(zé)采集各節(jié)點(diǎn)的性能指標(biāo)數(shù)據(jù),InfluxDB是一個(gè)分布式時(shí)序數(shù)據(jù)庫,Telegraf采集的數(shù)據(jù)通過HTTP請(qǐng)求上報(bào)到InfluxDB中進(jìn)行存儲(chǔ),Grafana從InfluxDB拉取數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析和可視化展示。 從三個(gè)方面分析AIOCC自動(dòng)I/O擁塞控制效果:1)在擁塞情況下,AIOCC針對(duì)不同負(fù)載對(duì)分布式文件系統(tǒng)調(diào)節(jié),系統(tǒng)整體吞吐的提升情況,對(duì)比不使用AIOCC調(diào)節(jié)(NO-AIOCC)、分別經(jīng)過24小時(shí)(24-AIOCC)和48小時(shí)(24h-AIOCC)訓(xùn)練后參數(shù)的調(diào)控效果進(jìn)行論證;2)分析AIOCC在48小時(shí)內(nèi),對(duì)每種負(fù)載調(diào)節(jié)時(shí),吞吐的變化的詳細(xì)情況;3)改變FIO參數(shù),減少客戶端I/O進(jìn)程的數(shù)量,分析在分布式文件系統(tǒng)集群處于輕載狀態(tài)下,AIOCC對(duì)系統(tǒng)是否有負(fù)面影響,對(duì)NO-AIOCC、24h-AIOCC和48h-AIOCC調(diào)控效果對(duì)比。通過測(cè)試,可以得到兩點(diǎn)結(jié)論:①在設(shè)定的集群規(guī)模和上述FIO參數(shù)合成的負(fù)載下,經(jīng)過24小時(shí)的訓(xùn)練,AIOCC基本可以獲得比較理想的調(diào)控參數(shù)值;②AIOCC對(duì)于讀操作為主的負(fù)載調(diào)控效果不明顯,而對(duì)于寫操作為主的負(fù)載調(diào)控效果較比較好,在讀寫比例為1∶9時(shí)可以提升吞吐40.87%。 AIOCC對(duì)分布式文件系統(tǒng)集群中的部分負(fù)載導(dǎo)致的I/O擁塞問題行之有效,對(duì)于寫I/O操作為主的負(fù)載提高系統(tǒng)吞吐最高達(dá)到 40.87%,降低吞吐的性能偏差26%,有效降低I/O任務(wù)完成時(shí)延達(dá)30%,同時(shí)不會(huì)持續(xù)對(duì)輕載狀態(tài)的分布式文件系統(tǒng)集群產(chǎn)生負(fù)面影響,性能開銷也在可控范圍內(nèi)。3 測(cè)試
4 結(jié)語