新聞中心
IOPS(Input/Output Operations Per Second)故名思意就是數(shù)據(jù)存儲(chǔ)系統(tǒng)每秒能完成的I/O讀寫次數(shù),即單位時(shí)間內(nèi)系統(tǒng)能處理的I/O請(qǐng)求數(shù)量,是一個(gè)用于計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)性能測(cè)試的量測(cè)指標(biāo)。

目前創(chuàng)新互聯(lián)建站已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、綿陽(yáng)服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、朔城網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
一、IOPS的理解
IOPS(Input/Output Operations Per Second)故名思意就是數(shù)據(jù)存儲(chǔ)系統(tǒng)每秒能完成的I/O讀寫次數(shù),即單位時(shí)間內(nèi)系統(tǒng)能處理的I/O請(qǐng)求數(shù)量,是一個(gè)用于計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)性能測(cè)試的量測(cè)指標(biāo)。這個(gè)存儲(chǔ)系統(tǒng)可以是單塊硬盤或者單臺(tái)設(shè)備也可以是包含多臺(tái)設(shè)備的一套存儲(chǔ)網(wǎng)絡(luò)系統(tǒng),比如SAN或者分布式多節(jié)點(diǎn)系統(tǒng)等。
二、影響存儲(chǔ)系統(tǒng)IOPS性能有哪些因素?
其實(shí)我一直想寫一篇關(guān)于如何準(zhǔn)確評(píng)估IOPS性能的文章,但是仔細(xì)一想我覺得要把存儲(chǔ)系統(tǒng)的IOPS評(píng)估的非常準(zhǔn)確,真的屬實(shí)不容易,為什么呢?因?yàn)镮OPS性能和許多因素相關(guān),比如以下幾個(gè),我覺得都是比較值得一提的,每一個(gè)都會(huì)對(duì)IOPS性能產(chǎn)生影響(這里是針對(duì)單臺(tái)或一套存儲(chǔ)設(shè)備或存儲(chǔ)網(wǎng)絡(luò)):
1、系統(tǒng)的硬盤數(shù)量和類型
(1)硬盤數(shù)量即一套存儲(chǔ)系統(tǒng)能同時(shí)管理和運(yùn)行的硬盤數(shù)量是多少塊,一般情況下,硬盤數(shù)量越多,整體IOPS性能會(huì)越好,可以簡(jiǎn)單的理解為堆疊;
(2)硬盤的類型,具體包括硬盤的接口類型,機(jī)械硬盤還是SSD硬盤等。機(jī)械硬盤的轉(zhuǎn)速、容量(存儲(chǔ)密度)、磁頭尋道時(shí)間、旋轉(zhuǎn)延遲,數(shù)據(jù)傳輸時(shí)間這些都和系統(tǒng)的IOPS性能相關(guān)聯(lián)的。而固態(tài)硬盤SSD是一種電子裝置,避免了傳統(tǒng)HDD磁盤在尋道和旋轉(zhuǎn)上的時(shí)間花費(fèi),存儲(chǔ)單元尋址開銷大大降低,因此IOPS可明顯提高。
2、網(wǎng)絡(luò)和接口速度
對(duì)一套存儲(chǔ)系統(tǒng)來(lái)說(shuō),應(yīng)用服務(wù)器和存儲(chǔ)設(shè)備之間的網(wǎng)絡(luò)帶寬和網(wǎng)絡(luò)接口速度以及多節(jié)點(diǎn)情況下各存儲(chǔ)節(jié)點(diǎn)之間所使用的網(wǎng)絡(luò)的速度也都是影響IOPS性能的重要因素。
3、應(yīng)用的隨機(jī)讀寫或者順序讀寫I/O比例
根據(jù)實(shí)際的應(yīng)用情況可將IOPS細(xì)分為如下幾種情形:
(1)讀寫混合以及隨機(jī)I/O負(fù)載情況下的IOPS,這個(gè)與實(shí)際I/O情況最為相符,大多數(shù)應(yīng)用是要關(guān)注此指標(biāo);
(2)100%隨機(jī)讀負(fù)載情況下的IOPS(Random Read IOPS);
(3)100%隨機(jī)寫負(fù)載情況下的IOPS(Random Write IOPS);
(4)100%順序讀負(fù)載情況下的IOPS(Sequential Read IOPS);
(5)100%順序?qū)懾?fù)載情況下的IOPS(Sequential Write IOPS)。
以上每種不同的情況下的IOPS差別是很大的,比如一般順序的讀寫肯定比隨機(jī)讀寫的IOPS值要高的,順序的尋址時(shí)間比隨機(jī)的快,示意圖:
哪些因素影響數(shù)據(jù)存儲(chǔ)系統(tǒng)的IOPS性能?哪些因素影響數(shù)據(jù)存儲(chǔ)系統(tǒng)的IOPS性能?
此外傳統(tǒng)的機(jī)械硬盤讀取和寫入時(shí)間差不多,而大部分閃存SSD的寫入速度比讀要慢很多,原因是無(wú)法寫入一個(gè)之前寫過(guò)的區(qū)域,會(huì)強(qiáng)制引導(dǎo)垃圾數(shù)據(jù)回收功能,但總體SSD性能肯定要好于HDD。
4、Cache命中率
Cache命中率對(duì)實(shí)際IOPS有決定性的影響,Cache命中率取決于數(shù)據(jù)的分布,Cache SIZE的大小和數(shù)據(jù)訪問的規(guī)則以及Cache的算法,我們這里把這些內(nèi)部原理都省略掉,只強(qiáng)調(diào):對(duì)于一個(gè)存儲(chǔ)系統(tǒng)來(lái)說(shuō),讀Cache的命中率越高,一般就表示它可以支持更多的IOPS。那么什么叫命中率呢?終端用戶訪問加速緩存時(shí),如果緩存駐了要被訪問的數(shù)據(jù)時(shí)就叫做命中,如果沒有的話需要回到原設(shè)備提取,就是沒有命中。命中率=命中數(shù)/(命中數(shù)+沒有命中數(shù)), 緩存命中率也是判斷加速效果好壞的重要因素之一。
5、RAID或文件系統(tǒng)模式
這里包含傳統(tǒng)的RAID以及分布式文件系統(tǒng)等,對(duì)于順序讀寫而且寫性能要求高,有冗余要求的應(yīng)用,選擇RAID1或RAID10。順序?qū)懸蟾叩臄?shù)據(jù), 應(yīng)單獨(dú)在一個(gè)RAID組中,避免來(lái)回尋址,典型的有Oracle的 redo log, Exchange 的 Transaction log等日志型的數(shù)據(jù)。對(duì)于有額外備份措施的數(shù)據(jù), 沒有冗余的要求, 讀寫性能要求高的用RAID0,比如實(shí)時(shí)數(shù)據(jù)采集。對(duì)于讀要求高于寫要求,隨機(jī)寫要求不高,容量上有考慮的,選擇RAID5。對(duì)于分布式軟件定義存儲(chǔ)系統(tǒng),小文件類和隨機(jī)讀寫頻繁的選擇副本機(jī)制,其他的可選擇糾刪碼模式。
6、隊(duì)列深度
主要指的是端口隊(duì)列中等待服務(wù)的I/O請(qǐng)求數(shù)量。如果I/O請(qǐng)求的數(shù)量超過(guò)了最大隊(duì)列深度,則該事務(wù)將在一段時(shí)間無(wú)法重新嘗試。使用SAS和SATA,排隊(duì)的I/O請(qǐng)求有一定的局限,但NVMe在大大增加隊(duì)列深度方面是一個(gè)重要的進(jìn)步,NVMe可以提供海量的隊(duì)列深度。其實(shí)加大硬盤隊(duì)列深度就是讓硬盤不斷工作,減少硬盤的空閑時(shí)間。
7、應(yīng)用線程數(shù)
線程數(shù)和IOPS的關(guān)系不言而喻,一個(gè)應(yīng)用同時(shí)工作的線程越多那么自然需要更多的I/O并發(fā),所以自然就需要更高的IOPS來(lái)支撐,反之亦然。
三、如何綜合評(píng)估IOPS性能?
1、利用測(cè)試工具
對(duì)于測(cè)試工具來(lái)講,一個(gè)請(qǐng)求從主機(jī)下發(fā)到存儲(chǔ),存儲(chǔ)完成后返回到主機(jī),這才算是這個(gè)I/O的一個(gè)完整周期。存儲(chǔ)設(shè)備制造商提出的IOPS性能不保證就是實(shí)際應(yīng)用下的性能,因?yàn)閷?shí)際的情況多種多樣。但I(xiàn)OPS可以通過(guò)測(cè)試程序來(lái)模擬一些不同的業(yè)務(wù)情形,建立測(cè)試模型,然后按照測(cè)試模型來(lái)實(shí)際運(yùn)行,以便找到最佳的存儲(chǔ)配置。
2、根據(jù)經(jīng)驗(yàn)和行業(yè)參考值來(lái)估算
每種類型的硬盤都有在特定環(huán)境下的IOPS參考值或者叫理論值,個(gè)人認(rèn)為如今的硬盤接口以及網(wǎng)絡(luò)的帶寬已經(jīng)不是瓶頸,因?yàn)榧夹g(shù)的發(fā)展讓這些指標(biāo)已經(jīng)很快了。如果預(yù)估IOPS,最主要是讀寫比例和RAID模式的寫懲罰,要有一個(gè)固定參考值,才能估算出較為接近的數(shù)值。
硬盤的IOPS參考值以及總的可用IOPS的計(jì)算公式,比如:
單硬盤IOPS = 1000ms / ((磁盤旋轉(zhuǎn)延遲時(shí)間(ms) + 磁頭尋道時(shí)間(ms))
系統(tǒng)總的IOPS=硬盤數(shù)量 × 單磁盤IOPS
系統(tǒng)總的可用IOPS=(系統(tǒng)總的IOPS×寫百分比÷RAID寫懲罰)+(系統(tǒng)總的IOPS×讀百分比)
RAID5寫懲罰為4,RAID6寫懲罰為6,RAID10寫懲罰為2,RAID1寫懲罰為2,RAID0寫懲罰為1,分布式多節(jié)點(diǎn)的以此類推。
我個(gè)人覺得如果不是那種每秒鐘都有幾十次以上的在線交易系統(tǒng),絕大部分的業(yè)務(wù)系統(tǒng)的IOPS需求都是比較容易滿足的。如果能估算出應(yīng)用總的IOPS的需求,那么就可以計(jì)算出需要多少塊硬盤了。
四、順便提一下吞吐量
吞吐量指的是單位時(shí)間內(nèi)存儲(chǔ)系統(tǒng)可以成功傳輸?shù)臄?shù)據(jù)數(shù)量。如果前面估算出了系統(tǒng)的IOPS了,吞吐量也就迎刃而解了。吞吐量估算公式為:
每秒I/O吞吐量= IOPS × 平均 I/O SIZE
從公式可以看出:I/O SIZE越大以及IOPS越高,那么每秒I/O 的吞吐量就越高。對(duì)于一個(gè)存儲(chǔ)系統(tǒng)來(lái)講,這兩個(gè)指標(biāo)均有其最大值,而且這兩個(gè)指標(biāo)也是相輔相成的。
五、數(shù)據(jù)塊的大小和存儲(chǔ)性能
對(duì)于數(shù)據(jù)塊很小并且隨機(jī)讀寫頻繁的應(yīng)用,IOPS是關(guān)鍵衡量指標(biāo),比如OLTP(Online Transaction Processing)在線交易處理。而對(duì)于大數(shù)據(jù)塊并且是順序讀寫的應(yīng)用,如VOD(Video On Demand)視頻類需求,這種應(yīng)用則更加關(guān)注吞吐量指標(biāo)(Throughput),這時(shí)候IOPS指標(biāo)就不是那么的重要了。
這里可以舉例子:
比如:讀取10000個(gè)1KB文件,用時(shí)10秒,雖然Throught(吞吐量)=1MB/s,但是IOPS=1000 ,對(duì)于追求IOPS的應(yīng)用就有意義;
再比如:讀取1個(gè)10MB文件,用時(shí)0.2秒,IOPS只等于5,但是Throught(吞吐量)=50MB/s,對(duì)于追求吞吐量的應(yīng)用就有意義。
所以并不是每個(gè)應(yīng)用都要追求高的IOPS的,也就是不是每套存儲(chǔ)系統(tǒng)的性能都是以IOPS作為唯一的衡量指標(biāo),要根據(jù)應(yīng)用的數(shù)據(jù)塊大小以及應(yīng)用的特性來(lái)綜合判斷哪個(gè)指標(biāo)是最需要關(guān)注的!
當(dāng)前標(biāo)題:影響數(shù)據(jù)存儲(chǔ)系統(tǒng)的IOPS性能的因素有哪些
網(wǎng)站鏈接:http://m.fisionsoft.com.cn/article/dhcoshi.html


咨詢
建站咨詢
