午夜精品人妻久久久-成年美女很黄的网站-在线看片免费人成视久网app-国产精品美女无遮挡一区二区-91精品国产综合久久久久-国产的免费视频又猛又爽又刺激-在线看片免费人成视久网app-久久香蕉国产精品视频-av一区二区三区高清

如何評(píng)估磁盤性能 ?磁盤的性能指標(biāo)

磁盤的性能指標(biāo)(如何評(píng)估磁盤性能)
在服務(wù)器使用過程中,經(jīng)常需要對磁盤性能進(jìn)行評(píng)估,以此來判斷磁盤能否滿足業(yè)務(wù)需要本文主要講解磁盤性能相關(guān)的基本概念和常見的測試性能的方法,今天小編就來說說關(guān)于磁盤的性能指標(biāo)?下面更多詳細(xì)答案一起來看看吧!

如何評(píng)估磁盤性能 ?磁盤的性能指標(biāo)

文章插圖
磁盤的性能指標(biāo)
在服務(wù)器使用過程中,經(jīng)常需要對磁盤性能進(jìn)行評(píng)估,以此來判斷磁盤能否滿足業(yè)務(wù)需要 。本文主要講解磁盤性能相關(guān)的基本概念和常見的測試性能的方法 。
一、磁盤性能相關(guān)的基本概念
磁盤的I/O,顧名思義就是磁盤的輸入輸出 。輸入指的是對磁盤寫入數(shù)據(jù),輸出指的是從磁盤讀出數(shù)據(jù) 。我們常見的磁盤類型有 ATA、SATA、FC、SCSI、SAS、SSD,這幾種磁盤中,服務(wù)器常用的是SATA、SAS、SSD磁盤,每一種磁盤的性能是不一樣的 。一般來說I/O性能: SATA < SAS < SSD
磁盤陣列的瓶頸分析主要體現(xiàn)在2個(gè)方面:IOPS與吞吐量 。
ioPS(Input/Output Per Second)即每秒進(jìn)行讀寫(I/O)操作的次數(shù),是衡量磁盤性能的主要指標(biāo)之一,多用于數(shù)據(jù)庫等場合,衡量隨機(jī)讀寫的性能 。
另一個(gè)重要指標(biāo)是數(shù)據(jù)吞吐量(Throughput) , 指單位時(shí)間內(nèi)可以成功傳輸?shù)臄?shù)據(jù)數(shù)量 。對于大量順序讀寫的應(yīng)用,如VOD(VideoOn Demand),則更關(guān)注吞吐量指標(biāo) 。
簡而言之:
磁盤的IOPS,也就是在一秒內(nèi) , 磁盤進(jìn)行多少次I/O讀寫 。
磁盤的吞吐量 , 也就是每秒磁盤I/O的流量,即磁盤寫入加上讀出的數(shù)據(jù)的大小 。
IOPS 與吞吐量的關(guān)系:
每秒I/O吞吐量=IOPS*平均I/O size 。
從公式可以看出:I/O SIZE 越大,IOPS越高 , 那么每秒I/O的吞吐量就越高 。因此,我們會(huì)認(rèn)為 IOPS 和吞吐量的數(shù)值越高越好 。實(shí)際上,對于一個(gè)磁盤來講,這兩個(gè)參數(shù)均有其最大值,而且這兩個(gè)參數(shù)也存在著一定的關(guān)系 。
吞吐量
吞吐量主要取決于陣列的架構(gòu),光纖通道的大小以及硬盤的個(gè)數(shù) 。
陣列的架構(gòu)與每個(gè)陣列不同,但也都存在內(nèi)部帶寬,不過在一般情況下,內(nèi)部帶寬都設(shè)計(jì)的很充足,不是瓶頸所在 。
其次是光纖通道對數(shù)據(jù)流量的影響 。比如為了達(dá)到1GB/s的數(shù)據(jù)流量要求,必須使用1GB*8=8GB的光纖卡,或4塊2GB的光纖卡 。
最后說一下硬盤的限制,當(dāng)前面的瓶頸不再存在的時(shí)候,就要看硬盤的個(gè)數(shù)了,因?yàn)椴煌挠脖P所能支撐的流量大小也不一樣 。
假設(shè)為了滿足1GB/s的數(shù)據(jù)流量要求,除了需要8塊1GB的光纖卡,同時(shí)所必須的磁盤個(gè)數(shù)為:
磁盤轉(zhuǎn)速規(guī)格
10K rpm
15K rpm
ATA
數(shù)據(jù)傳輸率
10 MB/s
13 MB/s
8 MB/s
所需磁盤個(gè)數(shù)
100塊
80塊
125塊
IOPS
決定IOPS的主要取決于陣列的算法、cache命中率以及磁盤個(gè)數(shù) 。
Cache命中率取決于數(shù)據(jù)的分布、Cache Size的大小、數(shù)據(jù)的訪問規(guī)則 , 以及Cache的算法 。
磁盤的限制 , 每個(gè)磁盤能處理的IOPS是有限制的 , 通常情況下每個(gè)磁盤的最大IOPS是確定的 。比如IDE和SATA硬盤的IOPS大致在100以內(nèi) , 而且IOPS的測試結(jié)果與測試方式(例如隨機(jī)讀寫和順序讀寫、讀和寫的比例、傳輸數(shù)據(jù)庫尺寸的大小、磁盤的數(shù)量)有很大關(guān)系 。盡管如此 , 磁盤的IOPS指標(biāo)還是對我們評(píng)估磁盤的壓力和是否能夠滿足系統(tǒng)的性能需求有著一定的指導(dǎo)意義 。
決定IOPS
具體分析
陣列的算法
同樣的讀寫 , 在不同的陣列所產(chǎn)生的iops是不同的:
RAID 0 :IOPS = Read IOPS   1*Write IOPS
RAID 1 :IOPS = Read IOPS   2*Write IOPS
RADI 3 :IOPS = Read IOPS   4*Write IOPS
RAID 5 :IOPS = Read IOPS   4*Write IOPS
RADI 6 :IOPS = Read IOPS   6*Write IOPS
RAID 10:IOPS = Read IOPS   2*Write IOPS
cache命中率
取決于數(shù)據(jù)的分布、Cache大小、數(shù)據(jù)訪問規(guī)則、Cache算法 。
cache算法越高效,則cache的命中率越高,加速效果越明顯;
cache容量越大,可以存儲(chǔ)的信息量越大,相對的命中率越高;
當(dāng)cache的容量一定時(shí),讀數(shù)據(jù)的塊大小對命中率的影響非常敏感;
磁盤因素
磁盤IOPS瓶頸:單個(gè)物理磁盤能夠處理的的最大IOPS是有限制的
SAS 15k rpm IOPS:150^180
SAS 10k rpm IOPS:130^150
SATA 7.2k rpm IOPS:70^90
SATA 5.4k rpm IOPS:30^50
SSD IOPS:5K^15K
磁盤容量:相同轉(zhuǎn)速,容量越小,所需的尋址之間越短,IOPS相對越高
【如何評(píng)估磁盤性能 ?磁盤的性能指標(biāo)】測試方式
隨機(jī)讀寫、順序讀寫、讀寫比例、傳輸數(shù)據(jù)的大小
備注:
1. 同樣的讀寫,不同RAID的讀操作所產(chǎn)生的IOPS相差無幾,而對IOPS影響最大的是寫操作.寫操作效率RAID 0最高,RAID 1和10次之.
2. 讀cache的命中率越高越好
3. 磁盤接口簡述:
?小型計(jì)算機(jī)系統(tǒng)接口(SCSI)
?集成設(shè)備電子學(xué)(IDE)
?串行高級(jí)技術(shù)附件(SATA)
?串行SCSI(SAS)
?光纖通道(FC)
?固態(tài)硬盤(SSD)或閃存盤
單個(gè)磁盤的IOPS計(jì)算方法:
讀操作
1個(gè)寫操作
每個(gè)磁盤的IOPS
每個(gè)磁盤的IOPS(考慮命中率 讀寫比例)
RAID 0
讀次數(shù)*(1-Cahe命中率)
實(shí)際1次io
(讀 寫)/磁盤個(gè)數(shù)
[讀*讀比例*(1-Cache命中率) (1*寫*寫比例)]/磁盤個(gè)數(shù)
RAID 1
讀次數(shù)*(1-Cahe命中率)
實(shí)際2次io
[讀 (2*寫)]/2
raid1只能配置2塊盤
[讀*讀比例*(1-Cahe命中率) (2*寫*寫比例)]/2
RAID 5
讀次數(shù)*(1-Cahe命中率)
實(shí)際4次io
[讀 (4*寫)]/磁盤個(gè)數(shù)
[讀*讀比例*(1-Cahe命中率) (4*寫*寫比例)]/磁盤個(gè)數(shù)
RAID 10
讀次數(shù)*(1-Cahe命中率)
實(shí)際2次io
[讀 (2*寫)]/磁盤個(gè)數(shù)
[讀*讀比例*(1-Cahe命中率) (2*寫*寫比例)]/磁盤個(gè)數(shù)
需求計(jì)算
案例一:假定業(yè)務(wù)需求10000 IOPS,120塊硬盤,讀cache命中率30%,讀iops為60%,寫iops為40% , 分別計(jì)算raid1、5、10的情況下,每個(gè)磁盤要求的iops為多少?
raid 1:
每塊硬盤的iops= (10000*0.6*(1-0.3)  2* (10000*0.4))/2= (4200   8000)/2 = 6000
這里,10000*(1-0.3)*0.6表示是讀的iops,比例是0.6,除掉cache命中 , 實(shí)際只有4200個(gè)iops;
請注意:在raid1中,1個(gè)寫操作實(shí)際發(fā)生了2個(gè)io,所以寫的iops為8000 。且raid1的RAID系數(shù)為2 , 所以增加硬盤對提升IOPS有限 。
raid5:
每塊硬盤的iops= (10000*0.6*(1-0.3)   4 * (10000*0.4))/120= (4200   16000)/120 = 168
而4 *(10000*0.4) 表示寫的iops,因?yàn)槊恳粋€(gè)寫,在raid5中,實(shí)際發(fā)生了4個(gè)io,所以寫的iops為16000個(gè);
raid10:
每塊硬盤的iops= (10000*0.6*(1-0.3)   2 * (10000*0.4))/120 = (4200   8000)/120= 102
因?yàn)閞aid10對于一個(gè)寫操作,只發(fā)生2次io,所以,同樣的壓力 同樣的磁盤,每個(gè)盤的iops只有102個(gè),遠(yuǎn)遠(yuǎn)低于磁盤的極限iops 。
吞吐率:
此外當(dāng)吞吐率超過85%時(shí),單個(gè)磁盤IOPS計(jì)算規(guī)則為:
((10000*讀比例*(1-Cache命中率)) 10000*寫比例*RAID系數(shù))/磁盤數(shù)/0.85
Cache比例
Cache 20%
Cache 40%
讀寫比例
讀80%,寫20%
讀60%,寫40%
讀80% , 寫20%
讀60%,寫40%
RAID 0
82
86
67
75
RAID 1
6118
7529
5176
6824
RAID 5
141
204
125
192
RAID 10
102
125
86
114
即每塊磁盤的IOPS大約在200左右即可滿足RAID0、RAID5、RAID10的要求 。
案例二:一個(gè)由5塊450G 10K RPM硬盤組成的RAID5,讀寫比為2:1,cache命中率為80% , 求該RAID支持的最大IOPS以及能夠給業(yè)務(wù)提供的IOPS?
首先10K RPM的FC硬盤,單盤的IOPS為140,5塊盤最大IOPS值為700;
能夠提供給業(yè)務(wù)的IOPS為:[X*(2/3)*(1-0.8)  X*(1/3)*4]/5 = 140 à X = 477
案例分析
在一個(gè)實(shí)際的case中,一個(gè)恢復(fù)壓力很大的standby(這里主要是寫,而且是小io的寫) , 采用了raid5的方案,發(fā)現(xiàn)性能很差 , 通過分析,每個(gè)磁盤的iops在高峰時(shí)期達(dá)到了200,導(dǎo)致響應(yīng)速度巨慢無比 。后來改造成raid10,就避免了這個(gè)性能問題 , 每個(gè)磁盤的iops降到100左右 。
二、性能評(píng)測方法
操作系統(tǒng) ubuntu 14.04
測試工具 fio
以順序讀為例子,
命令如下:fio -name iops -rw=read -bs=4k-runtime=60 -iodepth 32 -filename /dev/sda6 -ioengine libaio -direct=1
其中 rw=read表示隨機(jī)讀 , bs=4k表示每次讀4k,filename指定對應(yīng)的分區(qū),這里我是/dev/sda6,direct=1表示穿越linux的緩存
以下我們會(huì)依次測試sata硬盤,sas硬盤 , ssd硬盤的順序讀,隨機(jī)讀 , 順序?qū)懀S機(jī)寫的速度
順序讀
測試命令:fio -name iops-rw=read -bs=4k -runtime=60 -iodepth 32 -filename /dev/sda6 -ioengine libaio-direct=1
SATAJobs: 1 (f=1): [R] [16.4% done] [124.1M/0K /s] [31.3K/0 iops] [eta 00m:51s]SASJobs: 1 (f=1): [R] [16.4% done] [190M/0K /s] [41.3K/0 iops] [eta 00m:51s]SSDJobs: 1 (f=1): [R] [100.0% done] [404M/0K /s] [103K /0 iops] [eta 00m:00s]
可以看到 在對4KB數(shù)據(jù)包進(jìn)行連續(xù)讀的情況下:
SSD其速度可以達(dá)到404MB/S,IOPS達(dá)到103K/S
SAS其速度可以達(dá)到190MB/S,IOPS達(dá)到41K/S
SATA其速度可以達(dá)到124MB/S,IOPS達(dá)到31K/S
順序讀,SAS總體表現(xiàn)是SATA硬盤的1.3倍,SSD總體表現(xiàn)是sata硬盤的4倍 。
隨機(jī)讀
測試命令 fio -nameiops -rw=randread -bs=4k -runtime=60 -iodepth 32 -filename /dev/sda6 -ioenginelibaio -direct=1
SATAJobs: 1 (f=1): [r] [41.0% done] [466K/0K /s] [114 /0 iops] [eta 00m:36s]SASJobs: 1 (f=1): [r] [41.0% done] [1784K/0K /s] [456 /0 iops] [eta 00m:36s]SSDJobs: 1 (f=1): [R] [100.0% done] [505M/0K /s] [129K /0 iops] [eta 00m:00s]
隨機(jī)讀,SAS總體表現(xiàn)是SATA硬盤的4倍 , SSD總體表現(xiàn)是sata硬盤的一千多倍 。
順序?qū)?br /> 測試命令:fio -name iops-rw=write -bs=4k -runtime=60 -iodepth 32 -filename /dev/sda6 -ioengine libaio-direct=1
SATAJobs: 1 (f=1): [W] [21.3% done] [0K/124.9M /s] [0 /31.3K iops] [eta 00m:48s]SASJobs: 1 (f=1): [W] [21.3% done] [0K/190M /s] [0 /36.3K iops] [eta 00m:48s]SSDJobs: 1 (f=1): [W] [100.0% done] [0K/592M /s] [0 /152K iops] [eta 00m:00s]
同樣的4KB數(shù)據(jù)包順序?qū)懙那闆r下,SSD卡的成績?yōu)?92MB/S , IOPS為152K 。而本地硬盤僅為118MB/S,IOPS僅為30290 。
隨機(jī)寫
測試命令: fio -nameiops -rw=randwrite -bs=4k -runtime=60 -iodepth 32 -filename /dev/sda6 -ioenginelibaio -direct=1
SATAJobs: 1 (f=1): [w] [100.0% done] [0K/548K /s] [0 /134 iops] [eta 00m:00s]SASJobs: 1 (f=1): [w] [100.0% done] [0K/2000K /s] [0 /512 iops] [eta 00m:00s]SSDJobs: 1 (f=1): [W] [100.0% done] [0K/549M /s] [0 /140K iops] [eta 00m:00s]
在接下來的4KB數(shù)據(jù)包隨機(jī)寫操作中 , SSD卡再次展示了其高超的IO性能,高達(dá)549MB/S的隨機(jī)寫速率,IOPS高達(dá)140K 。相比之下,本地硬盤的隨機(jī)讀寫僅為548KB/S , IOPS為134 。
作者:孫明柱