以下內(nèi)容來自現(xiàn)場速記:
李鑫:大家好,我是李鑫,來自威剛科技。我個(gè)人從事軟件開發(fā)有20多年的歷史,在威剛超過5年的時(shí)間,主要做軟件的開發(fā)部分。我今天想分享一個(gè)軟件,我們把它當(dāng)做一個(gè)小菜。我分享的題目是以開放源碼為基礎(chǔ)分析SSD性能的測試軟件,這個(gè)軟件不僅符合測試規(guī)范,而且以開放源碼的方式提供給大家。
威剛科技成立于2001年,專門從事儲(chǔ)存裝置、研發(fā)?;仡櫾赟SD方面的發(fā)展歷程,我們是從2007年開始做SSD的研發(fā),2012年我們?cè)谌毡臼袌霰憩F(xiàn)不錯(cuò),市占率第一,2016年在全球市場達(dá)到第四,2018年我們加入了一個(gè)協(xié)會(huì),就是JEDEC協(xié)會(huì),加入?yún)f(xié)會(huì)以后制定新的標(biāo)準(zhǔn),我們聯(lián)合制定了一個(gè)NGSSF的標(biāo)準(zhǔn)。
SSD在過去10取得了非??斓陌l(fā)展,體積小、容量大、速度快,而且耗電低,普遍為市場接受,雖然它有不同外表,但是內(nèi)部的硬件主要分為三個(gè)部分,各家做硬件的方法不太一樣,SSD組成主要是由主控芯片、閃存芯片及固件算法組成,主控的不同,閃存類型及通道數(shù)的不同,SSD性能都有很大的差異。
威剛作為一家SSD的開發(fā)商,對(duì)SSD的開發(fā)、測試非常重視,我們必須要有一個(gè)工具驗(yàn)證整個(gè)SSD產(chǎn)品的特性,特別是對(duì)開發(fā)人員來講。
在坊間可以看到很多測試工具,它們都有類似的測試內(nèi)容,每一個(gè)測試軟件測出來的東西不同,因?yàn)槔锩娴墓ぷ髫?fù)載不同。受到傳輸結(jié)構(gòu)影響,裝置的負(fù)載都不見得會(huì)一樣,但如果你是一般的消費(fèi)級(jí)產(chǎn)品可以用這些測試裝置找出可用的符合實(shí)際的應(yīng)用。
IT、企業(yè)端的用戶關(guān)注應(yīng)用上的特定工作負(fù)載,需要找到讀寫的需求量是什么,再?zèng)Q定下一次采購新的設(shè)備的時(shí)候怎么做,所以它更需要一個(gè)軟件做這方面的分析。
不同的工作負(fù)載,讀寫比例配置等等配置不同都會(huì)影響到SSD的性能,一般消費(fèi)者與企業(yè)端客戶的需求不一樣。但都面臨一個(gè)難題,手邊的測試的結(jié)果是不是你真正需要的?能不能反映真實(shí)環(huán)境下的性能表現(xiàn)?
所以,一定要有測試驗(yàn)證工具,剛才提到的工具我們都在用,但是我們覺得不夠,為什么不夠?
因?yàn)槟切┕ぞ叨家呀?jīng)固定了,跑出來的分?jǐn)?shù)可能是取一個(gè)峰值,但是對(duì)企業(yè)端是不夠的。我們有必要自己去開發(fā)一個(gè)軟件,可以從開發(fā)過程中知道測試依據(jù)的方法,而且可以修改代碼,做一些特制的軟件,這個(gè)測試是SSD整體的測試,和FTL測試不同。
我們提出的解決方案是做一個(gè)開源的軟件包,在軟件包上要符合標(biāo)準(zhǔn)測試的規(guī)范,SNIA有一個(gè),我們希望用這樣的方式做一個(gè)標(biāo)準(zhǔn)的測試,我們完成之后把它開放出來了。不同的測試工具測出來的數(shù)據(jù)不一樣,SNIA也面臨這樣的問題,從2003年就意識(shí)到這個(gè)事情,2018年產(chǎn)生了2.0版,整合了企業(yè)端的測試。一般的測試也有,但是它也有所謂的企業(yè)級(jí),不同企業(yè)用戶可以做一些調(diào)試,比如說塊的大小,符合企業(yè)的需求。我們開發(fā)這個(gè)軟件以這個(gè)為主,這樣才會(huì)真正。
對(duì)于消費(fèi)者端,都是一些跑分軟件,只要讀寫數(shù)據(jù)高的話,用戶都非常滿意。對(duì)于企業(yè)端來講,他希望是穩(wěn)態(tài)的性能,后面有一些算法,一直到最后的Steady,性能表現(xiàn)不超過10%,所有的性能依據(jù)以這個(gè)為準(zhǔn)。我們的測試軟件以這邊為依據(jù),用開放源碼的方式進(jìn)行。
既然有一個(gè)規(guī)范,這邊可以看到開放源碼的基準(zhǔn),可以看到它的參數(shù)相當(dāng)多。
我們?cè)谲浖厦孀隽艘粋€(gè)修改,用堆疊的方式比較明顯。第一個(gè)是包含和部分,包括Web UI和Apache server,數(shù)據(jù)庫用的是MariaDB。PTS test suite用的是PHP,產(chǎn)生的測試報(bào)告有文字、圖像,PHP可以方便地做可視化。FIO是模組,負(fù)責(zé)IO測試的部分。
從另外一個(gè)角度看,User Report,Test process,測試中期是Test process,這是一個(gè)測試的過程。界面部分,測試使用者可以在管理層這邊,登錄以后可以做兩件事情,測試管理和測試進(jìn)程。
我們看幾個(gè)重要的頁面,登錄測試頁面以后輸入測試的配置,企業(yè)級(jí)場景有參數(shù)可以修改,修改讀寫比例,參數(shù)輸入完以后就可以進(jìn)行測試了,用戶可以選擇什么時(shí)候測試,測試的時(shí)長,結(jié)束的時(shí)間,測試的項(xiàng)目是什么,產(chǎn)生的測試報(bào)告以PDF的形成出現(xiàn)。
測試軟件符合PTS(SNIA Solid State Storage (SSS) Performance Test Specification (PTS) v2.0 )標(biāo)準(zhǔn),標(biāo)準(zhǔn)當(dāng)中灰色的部分是測試項(xiàng)目。
下面分成四大區(qū)塊,會(huì)自動(dòng)顯示測試平臺(tái),第二個(gè)是待測裝置,然后設(shè)定參數(shù),這個(gè)報(bào)告是隨機(jī)測試的結(jié)果,然后有一個(gè)測試參數(shù)。如果做完整的測試,大概有六七十個(gè)報(bào)告。
這個(gè)叫Cross Stimulus Recovery測試,左邊是Throughput,可以看出來它的變化,順序?qū)懭氲臅r(shí)候流量最大,變成小量的時(shí)候紅色的線非??斓牡粝聛砹耍缓蟮降锥?。
此項(xiàng)成果已經(jīng)成為GitHub上開放源碼軟件。鏈接
總結(jié),我們非常努力的在完成軟件的開發(fā),PTS標(biāo)準(zhǔn)總是要有人去實(shí)踐,我們符合規(guī)范。同時(shí)又一個(gè)完整UI可視化的呈現(xiàn),自動(dòng)產(chǎn)生測試報(bào)告,同時(shí)有一個(gè)便于使用的人機(jī)界面來做管理。我們把它變成一個(gè)開放軟件方便大家使用,我們以一個(gè)開放的心把它回饋給開源社群,以上是我的報(bào)告分享,接下來是我的聯(lián)絡(luò)方式,
shing_lee@adata.com,大家可以與我取得聯(lián)系。我是從臺(tái)灣過來的,這是我第一次來到武漢,謝謝各位的時(shí)間!