圖一:IOmeter中12w的IOPS
首先要考慮的是測(cè)試環(huán)境,要盡可能接近客戶的真實(shí)情況,這可能包括硬件設(shè)備、網(wǎng)絡(luò)環(huán)境、邏輯配置等。10塊盤和40塊盤,提供相同的容量,測(cè)出來的性能肯定是不同的,也就是常說的overprovision。
其次要考慮的是測(cè)試方法,相對(duì)靠譜的是就用客戶的真實(shí)數(shù)據(jù)和應(yīng)用來測(cè),這個(gè)方式的最大缺點(diǎn)在于需要相對(duì)充足的時(shí)間和資源來搭建環(huán)境。參與測(cè)試的客戶往往并不是應(yīng)用專家,資源的協(xié)調(diào)和測(cè)試過程中遇到的問題,如果沒有辦法及時(shí)解決,那測(cè)試的價(jià)值就會(huì)大打折扣。廠商的選擇往往是那些性能測(cè)試工具,比如IOmeter、fio或orion 。這種想法也沒有問題,畢竟作為廠商需要展示的是存儲(chǔ)的IO性能,而客戶應(yīng)用如果不夠合理,測(cè)試結(jié)果要么就是存儲(chǔ)的使用效率很低,應(yīng)用成為瓶頸;要么就是過分依賴存儲(chǔ),什么都往里面寫,造成存儲(chǔ)忙得要死,而應(yīng)用還是慢。這些問題不是一時(shí)半會(huì)能夠解決的,再加上各種其他因素,比如商務(wù)、客戶實(shí)際情況,有可能很好的產(chǎn)品就因?yàn)樵愀獾臏y(cè)試結(jié)果而落選了。一個(gè)優(yōu)秀工程師的作用就是在現(xiàn)有條件下,可以將結(jié)果最大化,努力實(shí)現(xiàn)客戶的真實(shí)測(cè)試需求。
以Iometer為例,在沒有人為修改程序的前提下,我認(rèn)為其結(jié)果還是比較真實(shí)的。有兩點(diǎn)需要說明,一個(gè)是Iometer的寫是同步寫,而很多存儲(chǔ)設(shè)備可以修改其寫入模式為同步還是異步寫入的。最簡(jiǎn)單的解釋就是同步寫時(shí),數(shù)據(jù)必須有效寫入到后端磁盤中;而異步寫時(shí),數(shù)據(jù)寫入DRAM中就可以了。異步寫的性能顯然會(huì)優(yōu)于同步寫,這點(diǎn)往往會(huì)被人忽略。另一點(diǎn)就是讀取性能測(cè)試,很多時(shí)候廠商會(huì)故意不寫入數(shù)據(jù)測(cè)試,這時(shí)候的測(cè)試數(shù)據(jù)會(huì)非常“理想”。比較合理的方式是,先連續(xù)寫入幾遍數(shù)據(jù),然后重啟客戶端和存儲(chǔ)控制器來清除內(nèi)存,我更相信這時(shí)候的讀取結(jié)果。
下圖為筆者在一次測(cè)試中的IOmeter測(cè)試結(jié)果,由于使用了SSD作為設(shè)備的讀寫加速設(shè)備,整體性能都有了非常明顯的提高。
圖二 幾種常見的測(cè)試案例
還有一個(gè)很重要的方面是,如何來解讀測(cè)試數(shù)據(jù)。我們希望展示給客戶的是存儲(chǔ)設(shè)備在高并發(fā)下,延時(shí)與IOPS的關(guān)系,在IOmeter中,可以通過增加manager,worker的數(shù)量,以及增加outstanding IO來模擬多臺(tái)服務(wù)器同時(shí)訪問存儲(chǔ)設(shè)備時(shí)的表現(xiàn)。當(dāng)然,各種讀寫比例的IOPS壓力測(cè)試也可以很好的幫助客戶了解設(shè)備的整體性能。
圖三 IOPS與并發(fā)IO
圖四 不同讀寫比例
如果可以很好地了解存儲(chǔ)設(shè)備的設(shè)計(jì)原理,這些測(cè)試可能都并不需要。但是在現(xiàn)實(shí)的情況下,大部分的客戶工程師并不具備這些能力??蛻粼诂F(xiàn)有的條件下,如果可以最大程度了解產(chǎn)品的真實(shí)性能,并結(jié)合實(shí)際情況,最大程度地使用好存儲(chǔ)產(chǎn)品,這才是測(cè)試的意義吧。
筆者結(jié)語:
最近工作真的非常忙,長(zhǎng)時(shí)間的熬夜加班和連續(xù)出差,很難有時(shí)間寫一些博客來與大家分享。希望大家在未來一年有更好的工作和生活。筆者今后也會(huì)結(jié)合代碼來和大家更好的解讀存儲(chǔ)技術(shù)。希望有問題的讀者可以聯(lián)系我,郵箱地址是 feizheng.philips@gmail.com