程 穩(wěn),李 焱,曾令仿,王 芳,唐士程,楊力平,馮 丹,曾文君
(1.華中科技大學(xué)武漢光電國家研究中心,信息存儲(chǔ)系統(tǒng)教育部重點(diǎn)實(shí)驗(yàn)室暨數(shù)據(jù)存儲(chǔ)系統(tǒng)與技術(shù)教育部工程研究中心,湖北 武漢 430074;2.深圳國家基因庫,廣東 深圳 518120;3.之江實(shí)驗(yàn)室,浙江 杭州 311121)
大規(guī)模集群存儲(chǔ)系統(tǒng)中,運(yùn)行著大量應(yīng)用任務(wù),各個(gè)應(yīng)用都有其自身的特性,如人工智能、空間/高能物理、基因工程和光子科學(xué)等應(yīng)用都具有不同的I/O模式,它們的負(fù)載表現(xiàn)多樣化,應(yīng)用的數(shù)據(jù)采集、建模、訓(xùn)練、分析和輸出等階段也有其不同的I/O特征和需求,如果所有應(yīng)用均等對待、不加區(qū)分地寫入集群存儲(chǔ)系統(tǒng)會(huì)引發(fā)各種問題[1],如資源競爭、性能下降和服務(wù)器宕機(jī)等。集群存儲(chǔ)系統(tǒng)的用戶、維護(hù)人員、上層應(yīng)用開發(fā)人員和多層存儲(chǔ)系統(tǒng)開發(fā)人員等需要了解當(dāng)前應(yīng)用程序需求與特性[2],獲取優(yōu)化建議,找出并消除效率低下的根源,自上而下優(yōu)化集群存儲(chǔ)系統(tǒng),為將來系統(tǒng)軟硬件設(shè)計(jì)或購買提供參考[3]。
應(yīng)用的多樣性和快速迭代更新,使得人們對當(dāng)前系統(tǒng)中應(yīng)用負(fù)載情況不甚明朗,不同系統(tǒng)環(huán)境中得出的觀察/結(jié)論有可能不同。比如,我們在實(shí)際應(yīng)用生產(chǎn)環(huán)境中采集了5個(gè)Lustre集群存儲(chǔ)連續(xù)326天的應(yīng)用日志信息,通過分析發(fā)現(xiàn),運(yùn)行在實(shí)際Lustre集群存儲(chǔ)中的應(yīng)用都是讀多寫少型,讀寫I/O在應(yīng)用運(yùn)行期間一直同時(shí)存在,一天內(nèi)I/O讀寫量幾乎維持在一個(gè)比較穩(wěn)定的水準(zhǔn)。我們的上述發(fā)現(xiàn)與文獻(xiàn)[3-5]的部分研究結(jié)論有所區(qū)別,但從宏觀角度看來,我們的發(fā)現(xiàn)在一定程度上進(jìn)一步完善了對應(yīng)用負(fù)載訪問特征的探究。因此,我們認(rèn)為,通過更多的探索來豐富/驗(yàn)證已有研究,進(jìn)一步完善已有資料庫,為系統(tǒng)開發(fā)人員和系統(tǒng)維護(hù)人員提供真實(shí)部署系統(tǒng)的特征信息與系統(tǒng)性能優(yōu)化建議,是非常有意義的;另外,在實(shí)際系統(tǒng)優(yōu)化過程中我們發(fā)現(xiàn),系統(tǒng)具備自動(dòng)優(yōu)化能力非常必要。
本文首先介紹常規(guī)應(yīng)用日志采集方案和現(xiàn)有I/O數(shù)據(jù)分析研究工作,并給出本文日志采集相關(guān)信息;然后對應(yīng)用日志進(jìn)行探究與分析;對相關(guān)問題與發(fā)現(xiàn)進(jìn)行歸納,并給出面向相關(guān)應(yīng)用負(fù)載的Lustre集群存儲(chǔ)優(yōu)化策略;最后,針對系統(tǒng)優(yōu)化過程中的自動(dòng)化需求,面向Lustre集群存儲(chǔ),設(shè)計(jì)并實(shí)現(xiàn)一個(gè)系統(tǒng)自動(dòng)優(yōu)化框架SAOF(System Automation Optimization Framework),初步實(shí)驗(yàn)表明,SAOF能自動(dòng)執(zhí)行資源預(yù)留、帶寬限定等優(yōu)化策略。
在開發(fā)、部署和評估功能時(shí),了解應(yīng)用特性是幫助架構(gòu)師、集成人員和維護(hù)人員識(shí)別性能、可用性、可擴(kuò)展性問題根源的關(guān)鍵[6]。已有研究工作通過研究數(shù)據(jù)使用模式,利用高級I/O庫,分析并行文件系統(tǒng)客戶端的I/O,優(yōu)化HPC環(huán)境的I/O預(yù)取[7],它們通常通過使用諸如DARSHAN[8]、LIOProf(Lustre IO Profiler)[9]這類工具對日志數(shù)據(jù)進(jìn)行跟蹤分析來評估應(yīng)用的I/O負(fù)載。應(yīng)用的負(fù)載一般具有階段性和周期性[10],利用已有日志對應(yīng)用負(fù)載進(jìn)行分析處理,既可以最大程度利用已存儲(chǔ)的日志信息,又可以不消耗寶貴的在線計(jì)算與存儲(chǔ)資源。
對應(yīng)用負(fù)載進(jìn)行優(yōu)化主要有2個(gè)步驟:(1)應(yīng)用I/O數(shù)據(jù)的監(jiān)控與采集;(2)I/O數(shù)據(jù)的分析。在應(yīng)用I/O數(shù)據(jù)的監(jiān)控與采集方面,已有較多優(yōu)秀的應(yīng)用I/O數(shù)據(jù)監(jiān)控與采集軟件,如應(yīng)用級I/O監(jiān)控[8,9]、存儲(chǔ)系統(tǒng)級I/O監(jiān)控[11]和全棧I/O監(jiān)控工具[12]。這3類工作主要關(guān)注相關(guān)軟件的開發(fā),介紹軟件的使用,并且一般都是特有領(lǐng)域自身的監(jiān)控方案,很少涉及到I/O數(shù)據(jù)分析[3,4]。
I/O數(shù)據(jù)分析主要分為2類:(1)單個(gè)應(yīng)用的I/O行為分析[13],其主要探究應(yīng)用的帶寬特性、I/O周期性與重復(fù)性、單個(gè)作業(yè)的I/O行為多樣性等。這些研究缺乏全局視角,效益有限,現(xiàn)階段大多研究傾向于挖掘更多的信息(如存儲(chǔ)服務(wù)器的信息),來進(jìn)一步優(yōu)化系統(tǒng)性能[14]。(2)整個(gè)存儲(chǔ)系統(tǒng)的I/O行為分析[15],此類研究通過探索最佳文件系統(tǒng)配置或確定系統(tǒng)級拓?fù)淦款i,關(guān)注存儲(chǔ)系統(tǒng)I/O行為,提供相應(yīng)建議,一般不會(huì)分析存儲(chǔ)系統(tǒng)上現(xiàn)有活動(dòng)的負(fù)載,通常也沒有對元數(shù)據(jù)服務(wù)器、對象存儲(chǔ)服務(wù)等提供深入的分析,沒有過多考慮與HPC系統(tǒng)相關(guān)的交互,只提供了整個(gè)存儲(chǔ)系統(tǒng)級別的高級特征。
針對整個(gè)存儲(chǔ)系統(tǒng)的I/O行為分析問題,Patel等人[3]利用系統(tǒng)級I/O監(jiān)控工具LMT(Lustre Monitoring Tool)[16]對美國國家能源研究科學(xué)計(jì)算中心NERSC (National Energy Research Scientific Computing center)的Edison和Cori超級計(jì)算機(jī)共享的Lustre集群存儲(chǔ)一年內(nèi)(2018年)所有存儲(chǔ)服務(wù)器的I/O活動(dòng)數(shù)據(jù)進(jìn)行收集,對采集到的I/O數(shù)據(jù)的時(shí)間、空間與相關(guān)性進(jìn)行了分析,發(fā)現(xiàn)了一些有趣的現(xiàn)象,如在NERSC系統(tǒng)中,HPC應(yīng)用的讀I/O負(fù)載已經(jīng)遠(yuǎn)遠(yuǎn)超過寫I/O負(fù)載,寫I/O比讀I/O更突發(fā),并且對象存儲(chǔ)目標(biāo)機(jī)之間的I/O活動(dòng)存在巨大的負(fù)載不平衡,與計(jì)算節(jié)點(diǎn)一樣強(qiáng)大的對象存儲(chǔ)服務(wù)器一般是空閑的,并且其CPU利用率非常低。
Turner等人[5]利用LASSi(Log Analytics for Shared System resource with instrumentation)工具(Cray公司開發(fā))[17]和SAFE(Service Administration From EPCC)軟件(愛丁堡并行計(jì)算中心開發(fā))[18]來收集和分析在英國國家超級計(jì)算服務(wù)ARCHER(Advanced Research Computing High End Resource)中Lustre集群存儲(chǔ)上的作業(yè)I/O性能數(shù)據(jù),分析了不同應(yīng)用程序?qū)ξ募到y(tǒng)性能的潛在影響結(jié)果,并預(yù)測其將如何影響未來的I/O需求,進(jìn)一步對這項(xiàng)工作未來可能的發(fā)展方向進(jìn)行了概述。另外,作者觀察到ARCHER上寫入的數(shù)據(jù)量大概是讀取數(shù)據(jù)量的2倍,不同應(yīng)用實(shí)際寫入量與讀取量有較大差別。
Patel等人[4]使用應(yīng)用級的采集工具Darshan[8]收集了一臺(tái)排名前500的超級計(jì)算機(jī)上4個(gè)月的I/O訪問數(shù)據(jù)進(jìn)行,對應(yīng)用I/O的訪問、重用和共享特性進(jìn)行了深入的挖掘和分析,作者總結(jié)了10個(gè)“發(fā)現(xiàn)”,如文件可分為讀密集型RH(Read-Heavy,占比約22%)、寫密集型WH(Write-Heavy,占比約7%)或讀寫密集型RW(Read-and Write-heavy,占比約71%),應(yīng)用負(fù)載情況以讀為主;讀任務(wù)比寫任務(wù)多,并且傳輸更多的數(shù)據(jù)量,但單次寫任務(wù)傳輸?shù)臄?shù)據(jù)量大概是讀任務(wù)傳輸數(shù)據(jù)量的1.4倍等等。其中一個(gè)有趣的“發(fā)現(xiàn)”是:現(xiàn)代HPC應(yīng)用程序在很大程度上傾向于在單個(gè)運(yùn)行期間只執(zhí)行一種類型的I/O(讀或?qū)?,但這與假設(shè)HPC應(yīng)用程序在單個(gè)運(yùn)行期間同時(shí)具有讀取和寫入I/O的觀點(diǎn)[19]相左。
深圳國家基因庫CNGB(China National GeneBank)集群系統(tǒng)存儲(chǔ)生物資源和基因數(shù)據(jù),對遺傳信息進(jìn)行讀取和合成運(yùn)用。本文使用Prometheus[20]采集CNGB存儲(chǔ)服務(wù)器應(yīng)用日志信息,被采集的5個(gè)Lustre集群存儲(chǔ)的相關(guān)信息如表 1所示,其中Lustre集群存儲(chǔ)及其客戶端的版本信息是該Lustre集群存儲(chǔ)2020年6月份的主流版本信息。
Table 1 Basic information of CNGB Lustre cluster storage
5個(gè)Lustre集群存儲(chǔ)的應(yīng)用日志信息大小分別是34 244 KB,34 148 KB,34 216 KB,34 692 KB和34 624 KB,總大小為171 924 KB,約168 MB應(yīng)用日志信息,應(yīng)用日志實(shí)際采集時(shí)間段:2019-08-01 00:00:01至2020-06-22 00:00:01,合計(jì)326天。
本文針對國家基因庫的5個(gè)Lustre集群存儲(chǔ)應(yīng)用日志分析,主要探究以下關(guān)鍵問題:
(1)應(yīng)用讀寫類型問題;
(2)同一生產(chǎn)環(huán)境中,不同Lustre集群存儲(chǔ)/應(yīng)用讀寫類型的差異性;
(3)讀寫數(shù)據(jù)量的變化規(guī)律;
(4)異常情況發(fā)生的規(guī)律性,同一生產(chǎn)環(huán)境不同Lustre集群存儲(chǔ)的異常情況是否一致;
(5)如何運(yùn)用應(yīng)用日志的分析來優(yōu)化存儲(chǔ)系統(tǒng)。
對以上5個(gè)關(guān)鍵問題的探究目的是試圖彌補(bǔ)現(xiàn)有發(fā)現(xiàn)的不足,豐富現(xiàn)有集群系統(tǒng)優(yōu)化資料庫。
圖1給出了5個(gè)Lustre集群存儲(chǔ)讀寫數(shù)據(jù)量柱狀圖,橫坐標(biāo)是Lustre集群存儲(chǔ)編號(hào),縱坐標(biāo)是讀寫數(shù)據(jù)量。觀察圖 1可以發(fā)現(xiàn),運(yùn)行在5個(gè)Lustre集群存儲(chǔ)上的應(yīng)用主要是讀多寫少類應(yīng)用,每個(gè)Lustre集群存儲(chǔ)讀寫總量比分別是:3.37,4.14,2.15,2.39和5.23,平均讀取數(shù)據(jù)量是寫入數(shù)據(jù)量的3.46倍。不同應(yīng)用的讀寫數(shù)據(jù)量比有較大差異,如集群存儲(chǔ)L_C的讀數(shù)據(jù)量是寫數(shù)據(jù)量的2.15倍,而集群存儲(chǔ)L_E的則為5.23倍。從圖1中可以進(jìn)一步看出,5個(gè)Lustre集群存儲(chǔ)應(yīng)用數(shù)據(jù)的寫入量相差不大,平均44.38 TB,而讀取數(shù)據(jù)量有較大差異。所以,在實(shí)際生產(chǎn)環(huán)境(主要是生物信息領(lǐng)域)中,應(yīng)用主要以讀應(yīng)用為主,不同應(yīng)用的讀寫數(shù)據(jù)量有較大差異。
Figure 1 Read/Write data of five Lustre cluster storages
圖 2分別給出了5個(gè)Lustre集群存儲(chǔ)11個(gè)月讀取和寫入數(shù)據(jù)量趨勢圖。橫向?qū)Ρ让總€(gè)Lustre集群存儲(chǔ)的讀取和寫入數(shù)據(jù)量,可以明顯看出,隨時(shí)間變化讀取數(shù)據(jù)量和寫入數(shù)據(jù)量無線性關(guān)系,每月的讀取和寫入數(shù)據(jù)量不可預(yù)測;縱向?qū)Ρ?個(gè)Lustre集群存儲(chǔ)的讀取和寫入數(shù)據(jù)量,發(fā)現(xiàn)當(dāng)月的讀取和寫入數(shù)據(jù)量并無直接關(guān)系,大量的寫入數(shù)據(jù)量并不一定會(huì)帶來大量的讀取數(shù)據(jù)量。
Figure 2 Read and write data of five Lustre cluster storage systems during eleven months
總的來說,從各月讀取和寫入數(shù)據(jù)量的趨勢圖可以看出,不同Lustre集群存儲(chǔ)上的應(yīng)用表現(xiàn)出了一致性,即:每個(gè)月的讀取數(shù)據(jù)量之間,每個(gè)月的寫入數(shù)據(jù)量之間和每個(gè)月的讀取和寫入數(shù)據(jù)量之間都無特別規(guī)律。這也符合客觀事實(shí),即用戶行為(如啟動(dòng)應(yīng)用、暫停、停止等操作)無法預(yù)測,使得集群存儲(chǔ)系統(tǒng)讀寫數(shù)據(jù)量整體看毫無規(guī)律,給緩存與預(yù)取策略的設(shè)計(jì)帶來了挑戰(zhàn)。
為進(jìn)一步探究Lustre集群存儲(chǔ)讀寫數(shù)據(jù)量之間的關(guān)系,本文對比分析了集群存儲(chǔ)系統(tǒng)的OST(Object Storage Target)容量、因異常而丟棄(drop)的字節(jié)數(shù)與異常數(shù)量三者之間的聯(lián)系。
圖 3分別給出了5個(gè)Lustre集群存儲(chǔ)異常drop次數(shù)及其對應(yīng)的數(shù)據(jù)量,可以明顯看出,異常drop次數(shù)與其對應(yīng)的數(shù)據(jù)量之間沒有明確關(guān)系,即同一生產(chǎn)環(huán)境中,異常情況的發(fā)生沒有規(guī)律,不同Lustre集群存儲(chǔ)的異常情況都不可預(yù)測,隨機(jī)性較強(qiáng)。
Figure 3 Drop number and drop data of five Lustre cluster storage systems
通過對比5個(gè)Lustre集群存儲(chǔ)的讀寫數(shù)據(jù)量,進(jìn)一步可以看出,Lustre集群存儲(chǔ)異常drop次數(shù)和其對應(yīng)的數(shù)據(jù)量與Lustre集群存儲(chǔ)的讀寫數(shù)據(jù)量之間并無聯(lián)系。這表明,用系統(tǒng)異常來預(yù)測或優(yōu)化系統(tǒng)的讀寫操作很難獲得良好的效果。
為了進(jìn)一步探究更細(xì)粒度的Lustre集群存儲(chǔ)應(yīng)用日志信息,接下來選取集群存儲(chǔ)L_A作為研究對象,進(jìn)行更深入的分析。
從2.1節(jié)的統(tǒng)計(jì)分析可以看出,5個(gè)Lustre集群存儲(chǔ)表現(xiàn)比較一致,為了更進(jìn)一步探究應(yīng)用日志的特性,本節(jié)選取了集群存儲(chǔ)L_A的I/O數(shù)據(jù)量作為研究對象,分別針對集群存儲(chǔ)L_A在不同時(shí)間尺度下的讀寫數(shù)據(jù)量進(jìn)行量化分析。
圖4給出了集群存儲(chǔ)L_A不同月份某天1小時(shí)內(nèi)的讀取數(shù)據(jù)量折線圖和當(dāng)天1小時(shí)內(nèi)對應(yīng)的寫入數(shù)據(jù)量折線圖。從圖4中可以看出,9月、10月和11月讀數(shù)據(jù)量相比于其他幾個(gè)月的讀數(shù)據(jù)量偏高,但幾乎一致處于偏高水準(zhǔn),比較穩(wěn)定,而寫入數(shù)據(jù)量僅10月處于偏高水準(zhǔn),并且整個(gè)時(shí)間段10月的寫入數(shù)據(jù)量都大于其他幾個(gè)月的寫入數(shù)據(jù)量。通過以上分析可以看出,短時(shí)間內(nèi)(如1個(gè)小時(shí)),大部分應(yīng)用的讀寫數(shù)據(jù)量大致趨于穩(wěn)定(偏高的一直處于偏高水準(zhǔn),偏低的一直處于偏低水準(zhǔn),很少呈現(xiàn)出鋸齒形)。另外,大多數(shù)應(yīng)用的讀寫比相當(dāng),僅9月和11月的平均讀數(shù)據(jù)量遠(yuǎn)高于寫數(shù)據(jù)量。少部分應(yīng)用是讀多寫少類應(yīng)用,大部分應(yīng)用的讀寫數(shù)據(jù)量相差不大。為了排除異常drop數(shù)據(jù)量對讀寫數(shù)據(jù)量的影響,本文對相關(guān)的drop字節(jié)數(shù)數(shù)據(jù)進(jìn)行了分析,僅發(fā)現(xiàn)8月的第60分鐘和10月的第40分鐘有17.33字節(jié)的數(shù)據(jù)量丟失,相比于真實(shí)讀寫數(shù)據(jù)量,基本可以忽略不計(jì)。
Figure 4 Read and Write data within one hour on a day in different months of L_A
總的來說,類似的應(yīng)用,I/O模式具有相似性,大多數(shù)應(yīng)用的讀寫需求量差別不大,僅個(gè)別應(yīng)用有較高的讀寫需求。
圖 5給出了集群存儲(chǔ)L_A不同月份某天內(nèi)的讀取數(shù)據(jù)量和寫入數(shù)據(jù)量折線圖。從圖5中可以明顯看出,相比于圖4,圖5的折線幅度較大。但是,讀取需求高的應(yīng)用,當(dāng)天的讀取數(shù)據(jù)量一直偏高(如9月、10月和11月),而寫入數(shù)據(jù)量卻呈現(xiàn)鋸齒形波動(dòng)(如1月、2月、4月和5月),這充分驗(yàn)證了HPC領(lǐng)域常見的I/O突發(fā)寫特性,但沒有表現(xiàn)出特定時(shí)間段內(nèi)(一天中)讀寫數(shù)據(jù)量集體偏高或偏低的情形,另外,除了9月和11月,大多數(shù)應(yīng)用的讀寫數(shù)據(jù)量的比例相當(dāng),與1小時(shí)內(nèi)得到的結(jié)論相符,對相關(guān)drop字節(jié)數(shù)數(shù)據(jù)進(jìn)行了分析,得出了類似1小時(shí)讀寫比例的相關(guān)結(jié)論。這從側(cè)面證明了在該環(huán)境中應(yīng)用比較穩(wěn)定,僅有少部分應(yīng)用是讀多寫少類應(yīng)用,大部分應(yīng)用的讀寫數(shù)據(jù)量相差不大。
Figure 5 Read and Write data on a day in different months of L_A
本文也對集群存儲(chǔ)L_A不同月份29天內(nèi)的讀寫數(shù)據(jù)量進(jìn)行了分析,分析發(fā)現(xiàn)讀取數(shù)據(jù)量部分應(yīng)用波動(dòng)較大,但大部分讀取數(shù)據(jù)量比較穩(wěn)定,寫入數(shù)據(jù)量雖然相比于讀取數(shù)據(jù)量較少,但與1天內(nèi)的寫入數(shù)據(jù)量類似,呈現(xiàn)鋸齒形波動(dòng),另外對相關(guān)drop字節(jié)數(shù)數(shù)據(jù)進(jìn)行了分析,得出了類似1小時(shí)、1天的讀寫比例的相關(guān)結(jié)論。
總而言之,針對當(dāng)前研究的Lustre集群存儲(chǔ)應(yīng)用,其突發(fā)性讀取操作較少(如圖4a和圖5a),突發(fā)性寫入操作較多(圖5b)。另外,根據(jù)集群存儲(chǔ)L_A在1個(gè)小時(shí)內(nèi)、1天內(nèi)和29天內(nèi)的讀寫數(shù)據(jù)量的各類測試圖可以看出,同一個(gè)系統(tǒng)中,I/O一直存在,且讀取和寫入操作是同時(shí)進(jìn)行的。
本節(jié)將進(jìn)一步討論5個(gè)關(guān)鍵問題,總結(jié)相關(guān)發(fā)現(xiàn)并與已有文獻(xiàn)進(jìn)行對比,給出系統(tǒng)優(yōu)化策略和建議;同時(shí),針對系統(tǒng)優(yōu)化的自動(dòng)化需求,設(shè)計(jì)并實(shí)現(xiàn)了SAOF,且初步驗(yàn)證了其有效性。
第2節(jié)對5個(gè)Lustre集群存儲(chǔ)的應(yīng)用日志進(jìn)行了橫向(多個(gè)Lustre集群存儲(chǔ)應(yīng)用日志)和縱向(單個(gè)Lustre集群存儲(chǔ)應(yīng)用日志)對比分析,有以下幾點(diǎn)發(fā)現(xiàn):
發(fā)現(xiàn)1在國家基因庫實(shí)際生產(chǎn)環(huán)境中,應(yīng)用主要偏向讀多寫少型(5個(gè)Lustre集群存儲(chǔ),平均讀取數(shù)據(jù)量是寫入數(shù)據(jù)量的3.46倍),另外不同應(yīng)用總的讀寫數(shù)據(jù)量有較大差異(如集群存儲(chǔ)L_C的讀數(shù)據(jù)量是寫數(shù)據(jù)量的2.15倍,而集群存儲(chǔ)L_E的讀數(shù)據(jù)量是寫數(shù)據(jù)量的5.23倍)。大多數(shù)應(yīng)用的讀寫數(shù)據(jù)量相差不大,僅個(gè)別應(yīng)用負(fù)載有較高的讀寫需求。
發(fā)現(xiàn)2同一個(gè)系統(tǒng)中,I/O一直存在,并且讀取和寫入操作通常是同時(shí)進(jìn)行的。短時(shí)間內(nèi)(如1個(gè)小時(shí)),應(yīng)用的讀寫數(shù)據(jù)量大致趨于穩(wěn)定,即I/O模式具有相似性或周期性。但是,每個(gè)月的讀取數(shù)據(jù)量之間,每個(gè)月的寫入數(shù)據(jù)量之間無特別規(guī)律。
發(fā)現(xiàn)3讀取數(shù)據(jù)量偏高的應(yīng)用,其讀取數(shù)據(jù)量一直偏高,而寫入數(shù)據(jù)量卻呈現(xiàn)鋸齒形波動(dòng),主要表現(xiàn)為I/O突發(fā)寫特性,但并沒有表現(xiàn)出特定時(shí)間段內(nèi)(1天中)讀寫數(shù)據(jù)量集體偏高或偏低的情形。
發(fā)現(xiàn)4同一生產(chǎn)環(huán)境中,異常情況的發(fā)生沒有規(guī)律,不同Lustre集群存儲(chǔ)的異常情況都不可預(yù)測,隨機(jī)性較強(qiáng)。因?yàn)楫惓rop的數(shù)據(jù)量較少,并沒有對實(shí)際讀寫數(shù)據(jù)量產(chǎn)生較大影響。
針對本文的“發(fā)現(xiàn)1”已有相關(guān)研究,如Patel等人[3]分析發(fā)現(xiàn)應(yīng)用的讀I/O負(fù)載遠(yuǎn)遠(yuǎn)超過寫I/O負(fù)載,但Turner等人[5]對應(yīng)用分析發(fā)現(xiàn)寫入數(shù)據(jù)量大概是讀取數(shù)據(jù)量的2倍。本文的“發(fā)現(xiàn)1”可以與上述研究相互印證。在本文測試的生產(chǎn)環(huán)境中,應(yīng)用偏向于讀多寫少,不同應(yīng)用讀寫負(fù)載差異較大,并且有如下補(bǔ)充:大多數(shù)應(yīng)用的讀寫數(shù)據(jù)量相差不大,僅個(gè)別應(yīng)用有較高的讀寫需求。本文的“發(fā)現(xiàn)1”在一定程度上進(jìn)一步完善了應(yīng)用負(fù)載類型相關(guān)文獻(xiàn)。其中引起負(fù)載類型差異的主要原因可能是不同研究機(jī)構(gòu)/數(shù)據(jù)中心的受眾不同,在其系統(tǒng)上運(yùn)行的應(yīng)用大多數(shù)具有類似性質(zhì),使得應(yīng)用負(fù)載總體看來具有了比較偏向的需求(如讀多寫少、寫多讀少等),但單個(gè)應(yīng)用可能表現(xiàn)并不明顯,即單個(gè)應(yīng)用的讀寫數(shù)據(jù)量差異可能并不巨大。
針對本文的“發(fā)現(xiàn)2”已有相關(guān)研究,如Patel等人[4]發(fā)現(xiàn)HPC文件讀寫表現(xiàn)出周期性,并且應(yīng)用程序在很大程度上傾向于在單個(gè)運(yùn)行期間只執(zhí)行一種類型的I/O:讀或?qū)?。但是,本文的“發(fā)現(xiàn)2”通過對應(yīng)用日志進(jìn)行詳細(xì)分析,卻發(fā)現(xiàn)同一個(gè)系統(tǒng)中I/O一直存在,且讀取和寫入操作通常是同時(shí)進(jìn)行的,短期內(nèi)讀寫I/O都比較穩(wěn)定,具有相似性或周期性,印證了HPC應(yīng)用程序在單個(gè)運(yùn)行期間同時(shí)具有讀取和寫入I/O的觀點(diǎn)[19]。另外,本文的“發(fā)現(xiàn)2”進(jìn)一步給出了長時(shí)間讀寫數(shù)據(jù)量并無特別規(guī)律的現(xiàn)象。
針對本文的“發(fā)現(xiàn)3”也有相關(guān)研究,如Patel等人[3]觀察到寫I/O比讀I/O更突發(fā),本文也觀察到了類似現(xiàn)象,即寫入數(shù)據(jù)量呈現(xiàn)鋸齒形波動(dòng),而且讀取數(shù)據(jù)量偏高的應(yīng)用,其讀取數(shù)據(jù)量一直偏高,比較穩(wěn)定,并且沒有表現(xiàn)出特定時(shí)間段內(nèi)(1天中)讀寫數(shù)據(jù)量集體偏高或偏低的情形。本文的“發(fā)現(xiàn)3”可以看作是對已有研究的補(bǔ)充。
針對本文的“發(fā)現(xiàn)4”,分析應(yīng)用日志并同時(shí)分析異常的相關(guān)研究較少,但僅對異常進(jìn)行分析優(yōu)化系統(tǒng)的研究較多。本文的“發(fā)現(xiàn)4”可以作為Lustre集群存儲(chǔ)異常優(yōu)化的一份參考資料。
針對“發(fā)現(xiàn)1”,讀多寫少類應(yīng)用,并且大多數(shù)應(yīng)用的讀寫數(shù)據(jù)量相差不大,僅個(gè)別應(yīng)用有較高的讀寫數(shù)據(jù)量需求,有如下優(yōu)化建議:應(yīng)用分類,數(shù)據(jù)分級存儲(chǔ),如針對讀寫數(shù)據(jù)量差異較大的應(yīng)用,可以配備高性能硬件設(shè)備或大內(nèi)存,設(shè)置預(yù)取規(guī)則,縮短應(yīng)用讀階段耗時(shí),優(yōu)化系統(tǒng)整體性能;而對于讀寫數(shù)據(jù)量差異較小的應(yīng)用,讀寫數(shù)據(jù)量相對較少,建議采用緩存算法來優(yōu)化系統(tǒng),既可以在一定程度上減少硬件開支,又能合理利用已有高速緩存設(shè)備,優(yōu)化系統(tǒng)讀寫性能。
針對“發(fā)現(xiàn)2”,I/O一直存在讀寫同時(shí)進(jìn)行的情況,由于寫入會(huì)影響讀取操作,可以采用讀寫分流策略,另由于短時(shí)間的讀寫數(shù)據(jù)量比較穩(wěn)定,但長時(shí)間讀寫數(shù)據(jù)量之間無特別規(guī)律,可能會(huì)引起OST端存儲(chǔ)負(fù)載不均的問題,建議根據(jù)短時(shí)間讀寫數(shù)據(jù)量、底層硬件的讀寫速度差異與文件系統(tǒng)剩余空間,制定讀寫分流策略。這樣設(shè)計(jì)可以在保證前端應(yīng)用讀寫性能較優(yōu)的同時(shí),減少后期因OST剩余空間不均衡而引發(fā)額外的數(shù)據(jù)遷移操作,也避免了數(shù)據(jù)遷移操作對正常I/O讀寫的干擾。
針對“發(fā)現(xiàn)3”,讀取數(shù)據(jù)量比較平穩(wěn)而I/O表現(xiàn)為突發(fā)寫的特性,可以采用PCC(Persistent Client Caching)技術(shù)[21,22]進(jìn)行優(yōu)化。另外,一般應(yīng)用,如社交軟件,會(huì)出現(xiàn)白天或夜晚使用用戶較多,凌晨使用用戶較少,而引起服務(wù)器負(fù)載不均衡的現(xiàn)象。但是,根據(jù)本文的“發(fā)現(xiàn)3”,讀寫數(shù)據(jù)量未出現(xiàn)某時(shí)段集體偏高或偏低的情形,其主要原因是用戶群不同。在國家基因庫實(shí)際生產(chǎn)環(huán)境中,應(yīng)用主要面向生物信息領(lǐng)域,為了最大化資源利用率,節(jié)省經(jīng)濟(jì)開銷,用戶和運(yùn)維人員都傾向于讓系統(tǒng)滿負(fù)荷運(yùn)行相關(guān)任務(wù),這在一定程度上對系統(tǒng)的可用性和可維護(hù)性提出了挑戰(zhàn)。針對以上挑戰(zhàn),為了確保系統(tǒng)穩(wěn)定,建議部署監(jiān)控報(bào)警系統(tǒng),并對相關(guān)文件設(shè)計(jì)數(shù)據(jù)安全策略(如File Level Redundancy和Erasure Coding等)。
針對“發(fā)現(xiàn)4”,根據(jù)Lustre集群存儲(chǔ)異常的隨機(jī)性與異常drop數(shù)據(jù)量的占比可知,如果僅用Lustre集群存儲(chǔ)異常來預(yù)測或優(yōu)化系統(tǒng)的讀寫操作可能無法獲得良好的效果。當(dāng)I/O出現(xiàn)異常時(shí),一般情況下,管理員會(huì)查看服務(wù)器節(jié)點(diǎn)的資源利用率,但根據(jù)本文第2節(jié)的分析可知,服務(wù)器節(jié)點(diǎn)的資源利用率是比較穩(wěn)定的,那么管理員通常會(huì)認(rèn)為異常I/O的應(yīng)用在MDS或OSS上與其他應(yīng)用產(chǎn)生了資源爭用。針對以上異常問題,建議將服務(wù)器端日志與應(yīng)用程序I/O模式相關(guān)聯(lián),但困難在于Lustre集群存儲(chǔ)實(shí)現(xiàn)了客戶端頁面緩存,在數(shù)據(jù)回寫時(shí),客戶端頁面緩存會(huì)將非常小但連續(xù)的I/O重組為大型順序I/O寫入后端存儲(chǔ)系統(tǒng),并且此過程中應(yīng)用的配置和后端存儲(chǔ)系統(tǒng)的監(jiān)控(只能看到寫回的數(shù)據(jù))都是透明的。因此建議針對非常小的I/O采用MOD(Data-On-Metadata)機(jī)制,在客戶端就區(qū)分I/O的大小流,在提升小文件讀寫I/O的同時(shí),減少原有后端存儲(chǔ)系統(tǒng)的監(jiān)控對象,為關(guān)聯(lián)服務(wù)器端日志與應(yīng)用程序I/O模式提供便利。
從前面應(yīng)用日志分析及系統(tǒng)優(yōu)化實(shí)踐中發(fā)現(xiàn),提升系統(tǒng)優(yōu)化的自動(dòng)化水平(或者說智能性),能降低系統(tǒng)運(yùn)維人員的工作強(qiáng)度,提升系統(tǒng)優(yōu)化效率。
4.4.1 系統(tǒng)自動(dòng)優(yōu)化需求分析
根據(jù)“發(fā)現(xiàn)1”可知,大多數(shù)應(yīng)用的讀寫數(shù)據(jù)量相差不大,僅個(gè)別應(yīng)用負(fù)載有較高的讀寫需求,那么在實(shí)際環(huán)境中,可以根據(jù)應(yīng)用特性為其提供QoS(Quality of Service)保證,設(shè)計(jì)資源利用規(guī)則,即滿足其隔離與資源需求。根據(jù)“發(fā)現(xiàn)2”可知,I/O的周期性可以為存儲(chǔ)系統(tǒng)資源利用提供事實(shí)依據(jù),即在根據(jù)應(yīng)用特性進(jìn)行隔離時(shí),依據(jù)I/O周期性特性,可以估算出當(dāng)前正在運(yùn)行、排隊(duì)的任務(wù)的完成時(shí)間、資源需求等,并設(shè)置相應(yīng)的調(diào)度策略,進(jìn)而使得資源利用更具合理性。根據(jù)“發(fā)現(xiàn)3”可知,同一應(yīng)用,長時(shí)間看,其應(yīng)用I/O需求比較穩(wěn)定,這有助于探究和利用Lustre集群存儲(chǔ)的系統(tǒng)狀態(tài)獲取命令(lfs/lctl)來分析/獲取負(fù)載特性,按需提供資源利用服務(wù),并可應(yīng)對一些應(yīng)用的突發(fā)需求(如checkpoint)。根據(jù)“發(fā)現(xiàn)4”可知,對OSS端I/O讀寫數(shù)據(jù)量的探究可以較好地代表Lustre集群存儲(chǔ)的整體I/O狀態(tài),一般采用Prometheus常規(guī)應(yīng)用監(jiān)控,可以避免監(jiān)控對系統(tǒng)過多影響,或者利用Lustre集群存儲(chǔ)提供的已有命令(lfs/lctl),不添加其他監(jiān)控部件,能進(jìn)一步減少對系統(tǒng)性能的影響,也能較好地獲得Lustre集群存儲(chǔ)的狀態(tài)。
通過剖析以上發(fā)現(xiàn)不難看出,不管應(yīng)用負(fù)載如何多變,對存儲(chǔ)系統(tǒng)資源的自動(dòng)管理(特別是資源預(yù)留與限定)才是關(guān)鍵。下面將簡要介紹現(xiàn)階段Lustre集群存儲(chǔ)的QoS解決方案與任務(wù)調(diào)度器并分析它們的不足之處。
Lustre集群存儲(chǔ)已有較多的QoS解決方案,例如:Lustre集群存儲(chǔ)的NRS(Network Request Scheduler)[23]中采用令牌桶過濾器TBF(Token Bucket Filter)進(jìn)行帶寬限制[1]并提供最小帶寬保證[24]的NRS-RBF策略;通過對Lustre集群存儲(chǔ)原有TBF策略進(jìn)行擴(kuò)展,文獻(xiàn)[25]提供了依賴規(guī)則TBF策略,通過手動(dòng)設(shè)置優(yōu)化關(guān)聯(lián)任務(wù)的遠(yuǎn)程過程調(diào)用RPC(Remote Procedure Call)速率,提供關(guān)聯(lián)任務(wù)QoS保障;針對原有TBF策略的一些功能缺乏問題,如只能限制RPC速率,不能對帶寬或每秒進(jìn)行讀寫操作的次數(shù)IOPS(Input/Output operations Per Second)進(jìn)行限制,僅針對單個(gè)OST/元數(shù)據(jù)目標(biāo)MDT(MetaData Target),無全局管理方案等問題,文獻(xiàn)[26]提出了LIME(Lustre Intelligent Management Engine)框架;以及近期我們提出的利用深度強(qiáng)化學(xué)習(xí)方法進(jìn)行端到端I/O調(diào)度的方案。但是,以上方案大都未考慮資源預(yù)留與已有任務(wù)調(diào)度器相結(jié)合方面的問題。通過對SLURM(Simple Linux Utility for Resource Management)[28]和現(xiàn)有Lustre集群存儲(chǔ)的資源規(guī)劃方案的探究有以下發(fā)現(xiàn):(1)當(dāng)提交的任務(wù)資源請求不滿足時(shí),SLURM 會(huì)一直等待輪詢該任務(wù);(2)并行文件系統(tǒng)(如Lustre集群存儲(chǔ)或GPFS(General Parallel File System))為調(diào)度器提供讀寫時(shí),隱藏了管理存儲(chǔ)性能所需的許多細(xì)節(jié),如后端存儲(chǔ)服務(wù)器的數(shù)據(jù)布局策略;(3)很少有作業(yè)調(diào)度器實(shí)現(xiàn)了自動(dòng)化的(資源預(yù)留)調(diào)度。
為了保證系統(tǒng)可擴(kuò)展性和可用性,系統(tǒng)運(yùn)維人員在執(zhí)行任務(wù)時(shí),為減少資源競爭和任務(wù)調(diào)度器的失誤,常常采用過度分配的方式管理資源。另外,現(xiàn)有Lustre資源管理方案缺乏通過分析存儲(chǔ)集群中文件數(shù)據(jù)位置與工作負(fù)載并"自動(dòng)按需"提供系統(tǒng)服務(wù)/優(yōu)化相關(guān)功能。
總的來說,現(xiàn)有方案在Lustre集群存儲(chǔ)內(nèi)部狀態(tài)的信息(如后端存儲(chǔ)服務(wù)的資源與數(shù)據(jù)管理等信息)、存儲(chǔ)帶寬管理、作業(yè)的帶寬消耗與面對周期性或臨時(shí)性任務(wù)的資源預(yù)留等方面,缺乏自動(dòng)優(yōu)化能力?;谝陨戏治龊蛯?shí)際應(yīng)用需求,面向Lustre集群存儲(chǔ),本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)系統(tǒng)自動(dòng)化優(yōu)化框架SAOF。在實(shí)際部署中,SAOF被設(shè)計(jì)為Lustre集群存儲(chǔ)中的一個(gè)新實(shí)例,它接收來自job管理系統(tǒng)(如SLURM)的讀寫帶寬請求,并通過配置Lustre集群存儲(chǔ)的網(wǎng)絡(luò)請求調(diào)度器(NRS),限制已注冊計(jì)算任務(wù)的帶寬,在資源滿足時(shí)保證任務(wù)QoS。具體來說,SAOF的主要功能是通過Lustre集群存儲(chǔ)常用命令lfs/lctl獲取集群存儲(chǔ)相關(guān)資源信息,并調(diào)用Lustre集群存儲(chǔ)的NRS-TBF調(diào)度器實(shí)現(xiàn)資源預(yù)留與限定[24]。SAOF的資源預(yù)留功能可以為數(shù)據(jù)遷移預(yù)留帶寬,緩解OST端存儲(chǔ)負(fù)載不均和數(shù)據(jù)遷移等問題;SAOF的資源限定可以達(dá)到應(yīng)用隔離并確保應(yīng)用QoS的目的。下面將介紹SAOF方案的具體實(shí)現(xiàn)。
4.4.2 SAOF設(shè)計(jì)
圖6給出了SAOF的系統(tǒng)架構(gòu)圖。圖6中虛線框給出了SAOF的主要組件,包括用來獲取前端用戶提交的任務(wù)信息與任務(wù)調(diào)度器交互的SAOF frontend API,更新與設(shè)置NRS-TBF策略的NRS-TBF Scheduler和當(dāng)前任務(wù)狀態(tài)的JobState和當(dāng)前后端集群存儲(chǔ)系統(tǒng)狀態(tài)的ClusterState。SAOF通過高速網(wǎng)絡(luò)與Lustre集群存儲(chǔ)的客戶端、服務(wù)器互聯(lián)。SAOF啟動(dòng)后,會(huì)周期性的聚合來自作業(yè)調(diào)度器的請求,收集來自服務(wù)器的資源利用情況,根據(jù)相應(yīng)的規(guī)則設(shè)置NRS-TBF策略,并廣播到相應(yīng)的OSS/MDS??偟膩碚f,SAOF的工作重心是從SLURM獲取任務(wù)信息,并組合來自集群的資源利用情況,自動(dòng)構(gòu)建TBF策略。
Figure 6 Architecture of SAOF
Lustre集群存儲(chǔ)默認(rèn)的最大RPC通常是1 MB,默認(rèn)4 KB讀寫情況下,NRS-TBF的1 rate=4 KiB/s的帶寬,因此集群系統(tǒng)的總帶寬基本上可以穩(wěn)定地定義為Lbw,也可以通過設(shè)定不同的rate來確保不同的帶寬需求。圖7給出了SAOF框架流程圖,其通過剩余帶寬判斷是否接受新任務(wù)或修改已運(yùn)行任務(wù)等級來減少前端調(diào)度器的試錯(cuò),即當(dāng)∑iminbwi≤Lbw時(shí),接受新任務(wù)或改變已有任務(wù)優(yōu)先級;否則把Lustre集群存儲(chǔ)資源信息反饋給任務(wù)調(diào)度器,減少試錯(cuò),減輕服務(wù)器計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)壓力。其中minbwi表示第i個(gè)任務(wù)所需要的最小帶寬。下面將分別對SAOF的性能隔離、QoS保障和資源預(yù)留功能進(jìn)行測試。
Figure 7 Flow of SAOF
4.4.3 SAOF功能測試與驗(yàn)證
由于國家基因庫短期內(nèi)沒有新增系統(tǒng)需求,當(dāng)前運(yùn)行的都是生產(chǎn)系統(tǒng),為了驗(yàn)證本文提出的系統(tǒng)自動(dòng)優(yōu)化框架的有效性,在實(shí)驗(yàn)室構(gòu)建一個(gè)小型Lustre集群存儲(chǔ)對SAOF進(jìn)行了初步測試。該小型Lustre集群存儲(chǔ)主要包括:3個(gè)客戶端,2個(gè)OSS并各自掛載了2個(gè)549.0 GB的OST,聚合容量2.1 TB,1個(gè)MDS掛載了1個(gè)261.4 GB的MDT;操作系統(tǒng)為CentOS 7.5;Lustre集群存儲(chǔ)版本為2.12.1;通過1 GB以太網(wǎng)互連。采用FIO(Flexible I/O tester)[29]測試工具(fio-3.7)生成相關(guān)任務(wù)負(fù)載,主要給出了寫帶寬的測試(讀帶寬、IOPS也可以通過設(shè)定相應(yīng)的TBF策略獲得類似的效果,示例中給出了對應(yīng)的IOPS測試圖)。測試如下所示:
(1) 性能隔離、QoS保障測試。
設(shè)計(jì)實(shí)驗(yàn)如下:假設(shè)系統(tǒng)能提供的總寫帶寬約為500 KiB/s,現(xiàn)在有2個(gè)任務(wù)A和B,任務(wù)A大概需要300 KiB/s的最大寫帶寬,大概200 KiB/s的最小寫帶寬,需要傳輸約200 MiB的數(shù)據(jù)量,任務(wù)B的優(yōu)先級高于任務(wù)A,任務(wù)B需要保證300 KiB/s左右的寫帶寬,需要傳輸約100 MiB的數(shù)據(jù)量。
從圖 8中可以看出,測試開始時(shí),任務(wù)A開始運(yùn)行,系統(tǒng)提供大概300 KiB/s的最大寫帶寬,當(dāng)任務(wù)A運(yùn)行300秒后,任務(wù)B開始運(yùn)行,此時(shí),任務(wù)A的寫帶寬降到200 KiB/s左右,任務(wù)B以300 KiB/s左右的寫帶寬運(yùn)行,又過了340秒左右后,任務(wù)B運(yùn)行完成,任務(wù)A再度恢復(fù)300 KiB/s左右的寫帶寬運(yùn)行,總共770秒左右后,任務(wù)A運(yùn)行完成。實(shí)驗(yàn)結(jié)果能較好地滿足預(yù)期。
通過以上實(shí)驗(yàn)驗(yàn)證了SAOF能對特殊任務(wù)提供性能隔離并滿足其服務(wù)質(zhì)量。
Figure 8 Performance isolation and QoS assurance
(2) 資源預(yù)留測試。
設(shè)計(jì)實(shí)驗(yàn)如下:假設(shè)系統(tǒng)提供給任務(wù)的總寫帶寬約為500 KiB/s,現(xiàn)有3個(gè)任務(wù)A、B和C,任務(wù)A和任務(wù)B同優(yōu)先級,需求帶寬與傳輸數(shù)據(jù)量都相同,需要大概250 KiB/s的最大寫帶寬,100 KiB/s的最小寫帶寬,需要傳輸約200 MiB的數(shù)據(jù)量,任務(wù)C的優(yōu)先級高于任務(wù)A和任務(wù)B,任務(wù)C需要保證300 KiB/s左右的寫帶寬,需要傳輸約50 MiB的數(shù)據(jù)量,并且任務(wù)C需要周期性運(yùn)行(每次傳輸50 MiB的數(shù)據(jù)量,總共需要傳輸3次)。
Figure 9 Periodic resource reservation and QoS assurance
圖9給出了周期性資源預(yù)留與QoS保障測試圖。從圖9中可以明顯看出,任務(wù)A與任務(wù)B幾乎獲得了相同的資源在運(yùn)行,每當(dāng)任務(wù)C開始執(zhí)行時(shí),任務(wù)A和B的寫帶寬都會(huì)下降;另外,系統(tǒng)總的帶寬消耗Total(A+B+C),除了在任務(wù)調(diào)度時(shí)有所下降外,其他情況下都能保證大約500 KiB/s的寫帶寬。
通過以上實(shí)驗(yàn)可以驗(yàn)證SAOF能對周期性應(yīng)用提供資源預(yù)留功能,確保應(yīng)用服務(wù)質(zhì)量。
集群存儲(chǔ)系統(tǒng)負(fù)責(zé)為上層應(yīng)用提供數(shù)據(jù)讀寫與存儲(chǔ)服務(wù),良好的集群存儲(chǔ)系統(tǒng)應(yīng)自動(dòng)適應(yīng)上層應(yīng)用按需訪問。針對在復(fù)雜系統(tǒng)環(huán)境以及應(yīng)用多樣性情況,對應(yīng)用負(fù)載的特性挖掘不夠完善等問題,本文對實(shí)際生產(chǎn)環(huán)境的Lustre集群存儲(chǔ)的應(yīng)用日志信息進(jìn)行了分析。具體來說,采集了國家基因庫生產(chǎn)環(huán)境中,5個(gè)Lustre集群存儲(chǔ)連續(xù)326天應(yīng)用日志相關(guān)信息,通過對應(yīng)用日志信息橫向(多個(gè)Lustre集群存儲(chǔ)應(yīng)用日志)、縱向(單個(gè)Lustre集群存儲(chǔ)應(yīng)用日志)和多維度(時(shí)間與空間)的對比分析,對現(xiàn)有研究進(jìn)行補(bǔ)充完善,也為其它系統(tǒng)/應(yīng)用負(fù)載研究提供了參考。通過對5個(gè)關(guān)鍵問題的回答與4個(gè)發(fā)現(xiàn)的分析,結(jié)合實(shí)際生產(chǎn)環(huán)境,給出了系統(tǒng)優(yōu)化策略建議與切實(shí)可行的實(shí)施方案。同時(shí),針對系統(tǒng)性能優(yōu)化自動(dòng)化需求,設(shè)計(jì)并實(shí)現(xiàn)了SAOF,SAOF通過合理利用應(yīng)用需求和集群存儲(chǔ)帶寬資源等信息提供資源預(yù)留、帶寬限制等功能,初步實(shí)驗(yàn)驗(yàn)證了SAOF的有效性。