磁盤(pán)性能壓測(cè)二三事之——性能參數(shù)和指標(biāo)

摘要:本文就將通過(guò)對(duì)磁盤(pán)性能測(cè)試指標(biāo)及參數(shù)的介紹陌宿,來(lái)理解以上兩個(gè)原因?yàn)槭裁磿?huì)對(duì)測(cè)試結(jié)果有影響串远。

近日工作中遇到了一個(gè)磁盤(pán)壓測(cè)時(shí)性能上不去的問(wèn)題,經(jīng)排查,發(fā)現(xiàn)原因有以下幾個(gè)方面:

1 測(cè)試參數(shù)的選擇

2 業(yè)務(wù)邏輯未關(guān)閉

本文就將通過(guò)對(duì)磁盤(pán)性能測(cè)試指標(biāo)及參數(shù)的介紹托享,來(lái)理解以上兩個(gè)原因?yàn)槭裁磿?huì)對(duì)測(cè)試結(jié)果有影響。

首先來(lái)介紹一下磁盤(pán)性能的測(cè)試指標(biāo)浸赫。

最常用的磁盤(pán)性能評(píng)價(jià)指標(biāo)有兩個(gè):IOPS和吞吐量(throughput)闰围。IOPS是Input/Output Per Second的縮寫(xiě),它表示單位時(shí)間內(nèi)系統(tǒng)能處理的I/O請(qǐng)求數(shù)量既峡,即每秒鐘系統(tǒng)能處理的讀寫(xiě)次數(shù)羡榴。

吞吐量衡量單位時(shí)間內(nèi)系統(tǒng)能處理的數(shù)據(jù)的體量,即每秒鐘磁盤(pán)上能讀寫(xiě)出的數(shù)據(jù)量的大小运敢,通常以kB/s或MB/s為單位校仑。

兩個(gè)指標(biāo)相互獨(dú)立忠售,又相互關(guān)聯(lián),在不同業(yè)務(wù)場(chǎng)景下迄沫,側(cè)重關(guān)注的指標(biāo)也有所不同稻扬。

對(duì)于文件尺寸小,隨機(jī)讀寫(xiě)比較多的場(chǎng)合羊瘩,比如在線交易處理系統(tǒng)泰佳,我們傾向于更關(guān)注IOPS,因?yàn)槲覀兏诤醯氖敲棵腌娔芴幚矶嗌贄l交易尘吗。

而對(duì)于文件尺寸較大逝她,順序讀寫(xiě)比較多的場(chǎng)合,比如視頻播放服務(wù)睬捶,數(shù)據(jù)吞吐量將會(huì)成為我們主要的考量指標(biāo)黔宛。

舉個(gè)例子來(lái)幫助我們更好的理解這兩個(gè)指標(biāo)。磁盤(pán)IO就相當(dāng)于我們有貨物(數(shù)據(jù))需要從A處(系統(tǒng))與B處(磁盤(pán))之間往返擒贸。貨物(數(shù)據(jù)量)有多有少宁昭,因此運(yùn)貨車(chē)也有大有小。B處有裝卸工人負(fù)責(zé)將貨物卸載到倉(cāng)庫(kù)的指定位置酗宋,或者從倉(cāng)庫(kù)指定位置提取貨物裝載到貨車(chē)上积仗。

每次貨車(chē)運(yùn)輸一趟貨物就相當(dāng)于處理一個(gè)IO請(qǐng)求,工人裝卸貨物就相當(dāng)于磁盤(pán)對(duì)IO的讀寫(xiě)處理蜕猫。在工人數(shù)量和工人裝卸貨物速度(磁盤(pán)數(shù)據(jù)處理速度)保持一定的情況下寂曹,裝卸大車(chē)上貨物的時(shí)間一定會(huì)比小車(chē)上的時(shí)間長(zhǎng),裝卸一大車(chē)貨物的時(shí)間回右,可能已經(jīng)夠小車(chē)運(yùn)輸若干趟貨物(IOPS高)隆圆。但是小車(chē)由于多次往返,其花在路上的時(shí)間要比大車(chē)多翔烁,同時(shí)每次裝卸貨物工人需要尋找正確的位置存取貨物(磁盤(pán)尋址時(shí)間)渺氧,比起大車(chē)的一次尋址,小車(chē)運(yùn)貨就也浪費(fèi)了更多時(shí)間蹬屹。因此在相同時(shí)間內(nèi)侣背,采用大車(chē)運(yùn)輸?shù)呢浳锟偭渴潜刃≤?chē)要多的(吞吐量高)。

這也是為什么我們?cè)谧龃疟P(pán)性能測(cè)試的時(shí)候慨默,通常一次只關(guān)注一個(gè)指標(biāo)贩耐,追求IOPS,就用小車(chē)運(yùn)輸少量貨物厦取,多次往返潮太。追求吞吐量,就用大車(chē)運(yùn)送大量貨物,節(jié)省路上及尋址所花費(fèi)的時(shí)間铡买。

下面再說(shuō)一下磁盤(pán)測(cè)試的影響因素更鲁。

實(shí)際測(cè)量中,IOPS會(huì)受到很多因素的影響奇钞,比如:

1 數(shù)據(jù)塊大小

相當(dāng)于我們前面說(shuō)的大車(chē)和小車(chē)運(yùn)貨的情況

2 順序和隨機(jī)

順序就是我們的貨物都按順序安排在倉(cāng)庫(kù)的一處岁经,隨機(jī)則意味著貨物隨機(jī)的分配在倉(cāng)庫(kù)的不同地點(diǎn),可以想見(jiàn)蛇券,貨物地點(diǎn)存放比較隨機(jī)的情況下缀壤,存取貨物一定是更費(fèi)時(shí)間的。

3 隊(duì)列深度

如果我們每次只發(fā)一輛貨車(chē)在AB之間往返纠亚,那么當(dāng)貨車(chē)在A處處理貨物或者在AB之間的路上跑的時(shí)候塘慕,B處的工人就處于閑置的狀態(tài),壓力測(cè)試時(shí)蒂胞,我們絕對(duì)不希望這種情況發(fā)生图呢,我們需要工人(磁盤(pán))一直工作,從而得出磁盤(pán)的最高性能骗随。想實(shí)現(xiàn)這一點(diǎn)蛤织,我們可以通過(guò)一次發(fā)多輛車(chē)來(lái)解決,保持始終有車(chē)輛在等待處理的隊(duì)伍里鸿染,這樣裝卸工人就一直有工作可做了指蚜。

隊(duì)列深度就是等待處理的隊(duì)伍里的貨車(chē)以及正在被裝卸的貨車(chē)的總數(shù)量。

4 線程數(shù)

測(cè)試時(shí)涨椒,增加線程數(shù)也可以增加并發(fā)度摊鸡,從而使裝卸工人一直處于有工作可做的狀態(tài)。

5 讀寫(xiě)比例

讀操作相當(dāng)于我們將貨從B中的倉(cāng)庫(kù)取出來(lái)蚕冬,運(yùn)到A處就結(jié)束了免猾。而寫(xiě)操作意味著貨物在A處經(jīng)過(guò)一番處理之后還要再運(yùn)回B處并存儲(chǔ)在倉(cāng)庫(kù)中。因此不同的讀寫(xiě)比例也會(huì)造成測(cè)試結(jié)果的不同囤热。

正是由于這些不同影響因素的存在猎提,我們?cè)趯?duì)磁盤(pán)進(jìn)行性能測(cè)試時(shí),需要仔細(xì)選擇測(cè)試參數(shù)旁蔼,否則將無(wú)法測(cè)出磁盤(pán)的最優(yōu)性能锨苏。同時(shí)應(yīng)將測(cè)試參數(shù)和方法定性定量,否則測(cè)試結(jié)果將失去比較的價(jià)值牌芋。

以 云盤(pán)參數(shù)和性能測(cè)試方法:

https://help.aliyun.com/document_detail/25382.html

一文中介紹的測(cè)試IOPS的方法為例蚓炬,我們來(lái)看一下linux常用測(cè)試工具fio的參數(shù)如何體現(xiàn)以上影響因素松逊。

測(cè)試隨機(jī)寫(xiě)IOPS:fio-direct=1-iodepth=128-rw=randwrite-ioengine=libaio-bs=4k-size=1G-numjobs=1-runtime=1000-group_reporting-filename=/dev/[device]-name=Rand_Write_Testing測(cè)試隨機(jī)讀IOPS:fio-direct=1-iodepth=128-rw=randread-ioengine=libaio-bs=4k-size=1G-numjobs=1-runtime=1000-group_reporting-filename=/dev/[device]-name=Rand_Read_Testing測(cè)試寫(xiě)吞吐量:fio-direct=1-iodepth=64-rw=write-ioengine=libaio-bs=1024k-size=1G-numjobs=1-runtime=1000-group_reporting-filename=/dev/[device]-name=Write_PPS_Testing測(cè)試讀吞吐量:fio-direct=1-iodepth=64-rw=read-ioengine=libaio-bs=1024k-size=1G-numjobs=1-runtime=1000-group_reporting-filename=/dev/[device]-name=Read_PPS_Testing

其中:

iodepth:隊(duì)列深度躺屁。異步引擎下起作用。

rw: 讀寫(xiě)模式经宏,可選模式有順序?qū)憌rite犀暑、順序讀read驯击、隨機(jī)寫(xiě)randwrite、隨機(jī)讀randread耐亏、混合隨機(jī)讀寫(xiě)randrw徊都。

ioengine: 負(fù)載引擎。libaio引擎用于發(fā)起異步IO請(qǐng)求广辰。

bs: IO塊大小暇矫。

numjobs 測(cè)試線程數(shù)。

對(duì)比四個(gè)測(cè)試方法的參數(shù)我們可以看到择吊,測(cè)試IOPS時(shí)我們采用小數(shù)據(jù)塊(bs=4k)李根,測(cè)試吞吐量時(shí)則用大數(shù)據(jù)塊(bs=1024k)。這和我們前面說(shuō)到的大貨車(chē)小貨車(chē)的選擇原理是一致的几睛。

隊(duì)列深度對(duì)IOPS的影響要大于對(duì)吞吐量的影響房轿,因?yàn)槲覀儨y(cè)試IOPS時(shí)選擇的iodepth更大。但iodepth也不是越大越好所森,因?yàn)楫?dāng)裝卸工人數(shù)量囱持、裝卸貨物速度、倉(cāng)庫(kù)尋址時(shí)間一定之后焕济,單位時(shí)間內(nèi)所能處理的最大貨物量也就確定了纷妆,即磁盤(pán)的能力確定了。一味增加隊(duì)列深度晴弃,增加的只能是貨物在隊(duì)列里的等待時(shí)間凭需,即平均IO響應(yīng)時(shí)間。

我們可以通過(guò)查看裝卸工人的忙碌程度來(lái)決定是否要增加隊(duì)列深度肝匆。如果磁盤(pán)的busy%為100%粒蜈,那就表示所有工人都在一刻不停歇的裝卸貨物了,已經(jīng)不再有提升的空間旗国,此時(shí)再增加隊(duì)列深度或是數(shù)據(jù)量大小對(duì)測(cè)試結(jié)果都將是徒勞枯怖。反之,則表示磁盤(pán)壓力尚未到極限能曾,得出的數(shù)據(jù)不能代表磁盤(pán)性能最高水平度硝。

磁盤(pán)壓測(cè)時(shí)如果有其他業(yè)務(wù)邏輯在運(yùn)行會(huì)怎樣呢?這種情況就相當(dāng)于有一部分貨車(chē)裝運(yùn)的是業(yè)務(wù)邏輯的數(shù)據(jù)寿冕,而這些貨車(chē)也會(huì)占用我們的隊(duì)列和裝卸工人蕊程,測(cè)試引擎將無(wú)法百分之百的使用全部隊(duì)列和裝卸工人,那么我們的測(cè)試結(jié)果將不能體現(xiàn)整個(gè)磁盤(pán)的能力驼唱。尤其是當(dāng)業(yè)務(wù)邏輯所涉及的IO是同步(synchronous)請(qǐng)求的時(shí)候藻茂,對(duì)測(cè)試結(jié)果的影響將更大,因?yàn)橥絀O就相當(dāng)于前面說(shuō)到的一次只讓一輛車(chē)在路上跑,只有等它跑完才會(huì)發(fā)下一輛車(chē)辨赐。因此在壓力測(cè)試的時(shí)候优俘,我們需要將業(yè)務(wù)邏輯關(guān)閉的。

原文鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末掀序,一起剝皮案震驚了整個(gè)濱河市帆焕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌不恭,老刑警劉巖叶雹,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異换吧,居然都是意外死亡浑娜,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)式散,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)筋遭,“玉大人,你說(shuō)我怎么就攤上這事暴拄±焯希” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵乖篷,是天一觀的道長(zhǎng)响驴。 經(jīng)常有香客問(wèn)我,道長(zhǎng)撕蔼,這世上最難降的妖魔是什么豁鲤? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮鲸沮,結(jié)果婚禮上琳骡,老公的妹妹穿的比我還像新娘。我一直安慰自己讼溺,他們只是感情好楣号,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著怒坯,像睡著了一般炫狱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上剔猿,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天视译,我揣著相機(jī)與錄音,去河邊找鬼归敬。 笑死酷含,一個(gè)胖子當(dāng)著我的面吹牛鄙早,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播第美,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蝶锋,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼陆爽!你這毒婦竟也來(lái)了什往?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤慌闭,失蹤者是張志新(化名)和其女友劉穎别威,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體驴剔,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡省古,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丧失。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豺妓。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖布讹,靈堂內(nèi)的尸體忽然破棺而出琳拭,到底是詐尸還是另有隱情,我是刑警寧澤描验,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布白嘁,位于F島的核電站,受9級(jí)特大地震影響膘流,放射性物質(zhì)發(fā)生泄漏絮缅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一呼股、第九天 我趴在偏房一處隱蔽的房頂上張望耕魄。 院中可真熱鬧,春花似錦彭谁、人聲如沸屎开。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)奄抽。三九已至,卻和暖如春甩鳄,著一層夾襖步出監(jiān)牢的瞬間逞度,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工妙啃, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留档泽,地道東北人俊戳。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像馆匿,于是被迫代替她去往敵國(guó)和親抑胎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容