SNIA固態(tài)存儲(chǔ)技術(shù)小組主席Eden Kim(右一)和Trust-tek公司技術(shù)支持經(jīng)理蔣伸億
2018年12月12日,在中國存儲(chǔ)與數(shù)據(jù)峰會(huì),存儲(chǔ)開發(fā)者論壇上,SNIA固態(tài)存儲(chǔ)技術(shù)小組主席Eden Kim和Trust-tek公司技術(shù)支持經(jīng)理蔣伸億一起為大家?guī)怼缎阅軐?duì)比-真實(shí)世界工作負(fù)載vs實(shí)驗(yàn)室綜合工作負(fù)載》。
以下為演講實(shí)錄:
存儲(chǔ)系統(tǒng)遭遇到很大的壓力時(shí),會(huì)出現(xiàn)擁堵問題,不管是云計(jì)算應(yīng)用還是云部署到設(shè)備上的應(yīng)用,終端硬件本身的性能壓力。因此前幾位演講人他們講了很多的方法,通過很多的算法和架構(gòu)的改變,軟件的不同部署,來去解決這個(gè)網(wǎng)絡(luò)擁堵的問題。
但我們介紹的主題是回歸到基本原理,他們?cè)诮鉀Q擁堵問題的時(shí)候,最基本的出發(fā)點(diǎn)就是存儲(chǔ)數(shù)據(jù)量的移動(dòng),它的真實(shí)負(fù)載到底是怎么樣的,它的塊大小和隊(duì)列深度都是實(shí)時(shí)在變化的,所以如果能先從基本方向去了解它的工作負(fù)載內(nèi)容,對(duì)后續(xù)解決擁堵的問題,肯定是更有效率的,因此我們今天會(huì)針對(duì)如何去分析真實(shí)世界工作負(fù)載,與實(shí)驗(yàn)室負(fù)載有什么樣性能的差異向大家分享我們研究的結(jié)果。
第一個(gè)重點(diǎn)是所有現(xiàn)在的數(shù)據(jù)中心或云存儲(chǔ)的性能,他跟真實(shí)的工作負(fù)載具有很大的相關(guān)性,這些所有的系統(tǒng)架構(gòu)上為了要優(yōu)化和設(shè)計(jì)階段再驗(yàn)證的階段需要考慮真實(shí)負(fù)載對(duì)系統(tǒng)的影響,以及對(duì)它未來采購SSD,如果得到性價(jià)比最高的SSD,應(yīng)用在各種不同的應(yīng)用服務(wù)上是很重要的事情。
所有的這些真實(shí)世界工作負(fù)載都可以在不同服務(wù)器上抓取,這些負(fù)載會(huì)按照不同硬件配置有不同的行為,所以性能測(cè)試真的跟真實(shí)負(fù)載有很直接的關(guān)系,現(xiàn)在最重要的就是真實(shí)工作負(fù)載會(huì)對(duì)你的系統(tǒng)造成很大的性能缺陷。
因此透過所有的真實(shí)工作負(fù)載,我們可以去了解,在長時(shí)間提供服務(wù)的整體情況下,你的實(shí)時(shí)負(fù)載變化,你可以透過這樣的工作負(fù)載的內(nèi)容去做一些東西,比如雙十一的時(shí)候,可能流量會(huì)很大,如果去分解流量,或者說過年過節(jié)的時(shí)候,很多網(wǎng)絡(luò)擁堵的問題,如何去解決?
另外進(jìn)行軟件的優(yōu)化或者互聯(lián)的測(cè)試,甚至對(duì)于一些實(shí)際遭遇的狀況,我們都可以透過真實(shí)工作負(fù)載找到它的蛛絲馬跡,來進(jìn)行錯(cuò)誤事項(xiàng)分析,最后可能對(duì)于服務(wù)器或者存儲(chǔ)設(shè)備的合格驗(yàn)證也會(huì)用負(fù)載當(dāng)做一個(gè)基礎(chǔ),通過這個(gè)基礎(chǔ)來考驗(yàn)存儲(chǔ)本身的性能。
這是一張很大的架構(gòu)圖,現(xiàn)在存儲(chǔ)系統(tǒng)架構(gòu)中,云的一些應(yīng)用程序、進(jìn)程、存儲(chǔ)架構(gòu)可能走不通的界面,像是fabric,或者是ethenet或者是infinband,所有的數(shù)據(jù)你可以想象終端用戶在網(wǎng)頁挑選的任何一個(gè)按紐,這個(gè)讀寫的請(qǐng)求經(jīng)過以太網(wǎng)進(jìn)入到云服務(wù)里,如何進(jìn)入到本地,網(wǎng)絡(luò)擁堵就是同時(shí)有太多人在本地敲下了讀寫的需求。
所以這個(gè)時(shí)候流量會(huì)非常大,這些流量可能在不同的時(shí)間點(diǎn),在架構(gòu)里每一個(gè)不同的硬件架構(gòu)或者軟件的開發(fā)層上都有不同的負(fù)載行為,所以我們的工具要能夠去在不同的內(nèi)容,按照每一個(gè)不同的系統(tǒng)開發(fā)商提供的不同解決方案,在不同的內(nèi)容抓取它的負(fù)載,透過真實(shí)的工作負(fù)載,就可以對(duì)這一個(gè)擁堵問題去提供一些好的解決方案,甚至是設(shè)計(jì)一些很好的算法,來解決這些問題。
我們來看看真實(shí)的負(fù)載和隨機(jī)生成的負(fù)載有多大的差距。
這是一家零售商網(wǎng)站的服務(wù)器,下面是一個(gè)windows系統(tǒng),我們?cè)贗O上看它負(fù)載,可以看到它跟我們實(shí)驗(yàn)室的負(fù)載不一樣,這個(gè)用的是不同系統(tǒng),真正所有的主要特性在這里貢獻(xiàn)了6%的IO行為。在24小時(shí)的負(fù)載里面,所有的IO在不斷的變化,在凌晨的時(shí)間有一個(gè)備份動(dòng)作,所以有一個(gè)很高的IO出來,其余的部分你可以想象在這個(gè)不同的離散時(shí)間點(diǎn)里面,有很多不同的用戶登陸服務(wù)器做讀寫訪問,所以通過IO我們可以理解真實(shí)負(fù)載跟實(shí)驗(yàn)室負(fù)載有很大的差別,我們不能單純的在意4K或者64K和大流量148K做性能和流量的檢測(cè)。
另一個(gè),我們也做了另一個(gè)真實(shí)負(fù)載測(cè)試,這是一個(gè)GPS定位系統(tǒng),在這個(gè)案例里,我們有9個(gè)IO流,這9個(gè)貢獻(xiàn)了86%的IO,在24小時(shí)里,QD的深度變化是在9到368,這個(gè)真實(shí)負(fù)載跟剛剛前面看到的負(fù)載變異性比較大,它的IOPS或者深度放的比較大,這個(gè)級(jí)別是比較平緩的,所以你會(huì)感覺到很強(qiáng)烈,在不同的系統(tǒng)不同的應(yīng)用中負(fù)載長的完全不一樣。
工作負(fù)載的IO可以給我們很多的信息,以這個(gè)圖表來看,它可以給你這些進(jìn)程任何一個(gè)時(shí)間的IOPS和IO的總量和TRIMs,現(xiàn)在負(fù)載做TRIMs存儲(chǔ)抹除的動(dòng)作,會(huì)有很大的影響,會(huì)造成流量上的使用,這個(gè)使用會(huì)導(dǎo)致正常業(yè)務(wù)的一些IO在這個(gè)時(shí)間點(diǎn)的時(shí)延會(huì)增加,所以在這邊抹除存儲(chǔ)空間的時(shí)候,會(huì)有很大的吞吐量,但是相對(duì)來講TRIM最大的時(shí)延會(huì)有14秒,所以可能會(huì)造成很大的影響,所以對(duì)負(fù)載應(yīng)用很關(guān)心這樣的行為,所以通過負(fù)載和IOmap地圖可以獲得很多在真正影響性能上的指標(biāo),通過這些指標(biāo)可以提供更多的想法,讓設(shè)計(jì)驗(yàn)證或者優(yōu)化都可以有很好的一些主意和方向去做這些事情解決問題。
所以后面我們針對(duì)一些負(fù)載來對(duì)兩個(gè)指標(biāo),一個(gè)IOPS,一個(gè)是時(shí)延,通過不同的測(cè)試,比如PM(持久性內(nèi)存)或者NVMe,我們用真實(shí)的負(fù)載和綜合負(fù)載,以及透過加壓的方式,去提高深度來看看每一種不同的存儲(chǔ)介質(zhì)在面對(duì)不同的負(fù)載情況下,它的性能之間是不是有很大的差異,是不是我們想象的好的盤不管怎么樣都有很好的性能,壞的盤會(huì)不會(huì)是性能不好,這個(gè)部分我們請(qǐng)Eden Kim介紹一下。
在柱狀圖中,黃色代表隨機(jī)負(fù)載,它的塊大小是8K,讀寫比例是讀65寫35,藍(lán)色是我們真實(shí)世界剛剛看到的塊IO,我們?cè)诓煌瑑蓚€(gè)條件下來看它的表現(xiàn)。各位可能對(duì)這個(gè)結(jié)果感興趣,因?yàn)榇蠹邑?fù)責(zé)的工作就是設(shè)計(jì),我們針對(duì)的測(cè)試對(duì)象是NVMe,還有AIC卡的,也有U.2的接口,還有M.2接口,我們有三個(gè)不同的顏色,黃色是合成的負(fù)載,第二部分真實(shí)負(fù)載,第三個(gè)是我們對(duì)真實(shí)的負(fù)載進(jìn)行加壓以后,加壓隊(duì)列深度五十倍以后看到的結(jié)果,不同的盤里面,藍(lán)色的部分都可以提高很多,第一個(gè)AIC即使加壓了,它的IOP還不是很高,所以你可以通過這樣的測(cè)試得到很有效率的結(jié)果。
從NVMe角度來講,我們的測(cè)試主要呈現(xiàn)支持負(fù)載里面,因?yàn)樨?fù)載本身它的壓力是比較輕的,所以我們現(xiàn)在透過QoS增加,看看平均的時(shí)延和QoS和IOPS的反應(yīng),IPOS隨著加壓可以呈現(xiàn)線性的增加,在時(shí)延QoS也是合理性的增加,這個(gè)盤可以讓設(shè)計(jì)者很理解我的盤面對(duì)真實(shí)負(fù)載,所有的表現(xiàn)都符合,不管壓力加大與否我可以有很好的穩(wěn)定輸出表現(xiàn)。
你可以看到在負(fù)載的情況下,它的性能是第一名,然后是ABC,分別是2,3,4名,當(dāng)我們應(yīng)用的是真實(shí)世界負(fù)載以后,你會(huì)看到這個(gè)排序是改變的,排序的表現(xiàn)已經(jīng)不一樣了。你也可以通過某種方式來看時(shí)延和QoS表現(xiàn),加壓在五倍的時(shí)候可以線性增加,但是加壓五到十倍,因?yàn)榭赡苓_(dá)到的性能上的飽和,所以它的IOPS降下來了,但是它的擴(kuò)展性也增加了,是一個(gè)很大的瓶頸點(diǎn)。
最后我們簡(jiǎn)單的總結(jié)一下,真實(shí)世界負(fù)載,不管在數(shù)據(jù)中心還是云存儲(chǔ)的性能,在設(shè)計(jì)或者驗(yàn)證上都是很關(guān)鍵的,通過IO流和壓力的變化,是對(duì)存儲(chǔ)系統(tǒng)來講有很大的相關(guān)性,通過真實(shí)世界負(fù)載來看看性能表現(xiàn)是很重要的,服務(wù)器或者在軟件的層面,在存儲(chǔ)和軟件都應(yīng)該通過真實(shí)世界負(fù)載合作,來配合做一些優(yōu)化,大家如果感興趣負(fù)載,可以看這個(gè)免費(fèi)工具——www.TestMyWorkload.com來測(cè)試一下你的系統(tǒng)工作負(fù)載。