IOPS
IOPS (Input/Output Per Second)即每秒的輸入輸出量(或讀寫次數(shù)),是衡量磁盤性能的主要指標(biāo)之一。IOPS是指單位時(shí)間內(nèi)系統(tǒng)能處理的I/O請(qǐng)求數(shù)量,一般以每秒處理的I/O請(qǐng)求數(shù)量為單位,I/O請(qǐng)求通常為讀或?qū)憯?shù)據(jù)操作請(qǐng)求。
隨機(jī)讀寫頻繁的應(yīng)用,如小文件存儲(chǔ)(圖片)、OLTP數(shù)據(jù)庫(kù)、郵件服務(wù)器,關(guān)注隨機(jī)讀寫性能,IOPS是關(guān)鍵衡量指標(biāo)。
順序讀寫頻繁的應(yīng)用,傳輸大量連續(xù)數(shù)據(jù),如電視臺(tái)的視頻編輯,視頻點(diǎn)播VOD(Video On Demand),關(guān)注連續(xù)讀寫性能。數(shù)據(jù)吞吐量是關(guān)鍵衡量指標(biāo)。
IOPS和數(shù)據(jù)吞吐量適用于不同的場(chǎng)合:
讀取10000個(gè)1KB文件,用時(shí)10秒 Throught(吞吐量)=1MB/s ,IOPS=1000 追求IOPS
讀取1個(gè)10MB文件,用時(shí)0.2秒 Throught(吞吐量)=50MB/s, IOPS=5 追求吞吐量
簡(jiǎn)而言之:
磁盤的 IOPS,也就是在一秒內(nèi),磁盤進(jìn)行多少次 I/O 讀寫。
磁盤的吞吐量,也就是每秒磁盤 I/O 的流量,即磁盤寫入加上讀出的數(shù)據(jù)的大小。
IOPS計(jì)算公式
對(duì)于磁盤來(lái)說(shuō)一個(gè)完整的IO操作是這樣進(jìn)行的:當(dāng)控制器對(duì)磁盤發(fā)出一個(gè)IO操作命令的時(shí)候,磁盤的驅(qū)動(dòng)臂(Actuator Arm)帶讀寫磁頭(Head)離開(kāi)著陸區(qū)(Landing Zone,位于內(nèi)圈沒(méi)有數(shù)據(jù)的區(qū)域),移動(dòng)到要操作的初始數(shù)據(jù)塊所在的磁道(Track)的正上方,這個(gè)過(guò)程被稱為尋址(Seeking),對(duì)應(yīng)消耗的時(shí)間被稱為尋址時(shí)間(Seek Time);但是找到對(duì)應(yīng)磁道還不能馬上讀取數(shù)據(jù),這時(shí)候磁頭要等到磁盤盤片(Platter)旋轉(zhuǎn)到初始數(shù)據(jù)塊所在的扇區(qū)(Sector)落在讀寫磁頭正上方的之后才能開(kāi)始讀取數(shù)據(jù),在這個(gè)等待盤片旋轉(zhuǎn)到可操作扇區(qū)的過(guò)程中消耗的時(shí)間稱為旋轉(zhuǎn)延時(shí)(Rotational Delay);接下來(lái)就隨著盤片的旋轉(zhuǎn),磁頭不斷的讀/寫相應(yīng)的數(shù)據(jù)塊,直到完成這次IO所需要操作的全部數(shù)據(jù),這個(gè)過(guò)程稱為數(shù)據(jù)傳送(Data Transfer),對(duì)應(yīng)的時(shí)間稱為傳送時(shí)間(Transfer Time)。完成這三個(gè)步驟之后一次IO操作也就完成了。
常見(jiàn)磁盤平均物理尋道時(shí)間為:
7200轉(zhuǎn)/分的STAT硬盤平均物理尋道時(shí)間是9ms
10000轉(zhuǎn)/分的STAT硬盤平均物理尋道時(shí)間是6ms
15000轉(zhuǎn)/分的SAS硬盤平均物理尋道時(shí)間是4ms
常見(jiàn)硬盤的旋轉(zhuǎn)延遲時(shí)間為:
7200 rpm的磁盤平均旋轉(zhuǎn)延遲大約為601000/7200/2 = 4.17ms
10000 rpm的磁盤平均旋轉(zhuǎn)延遲大約為601000/10000/2 = 3ms,
15000 rpm的磁盤其平均旋轉(zhuǎn)延遲約為60*1000/15000/2 = 2ms。
最大IOPS的理論計(jì)算方法
IOPS = 1000 ms/ (尋道時(shí)間 + 旋轉(zhuǎn)延遲)。可以忽略數(shù)據(jù)傳輸時(shí)間。
7200 rpm的磁盤IOPS = 1000 / (9 + 4.17) = 76 IOPS
10000 rpm的磁盤IOPS = 1000 / (6+ 3) = 111 IOPS
15000 rpm的磁盤IOPS = 1000 / (4 + 2) = 166 IOPS