RedHat系統(tǒng)之磁盤IO性能測(cè)試工具-創(chuàng)新互聯(lián)

#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)用,如OLTP(Online Transaction Processing),IOPS是關(guān)鍵衡量指標(biāo)。另一個(gè)重要指標(biāo)是數(shù)據(jù)吞吐量(Throughput),指單位時(shí)間內(nèi)可以成功傳輸?shù)臄?shù)據(jù)數(shù)量。對(duì)于大量順序讀寫的應(yīng)用,如電視臺(tái)的視頻編輯,視頻點(diǎn)播VOD(Video On Demand),則更關(guān)注吞吐量指標(biāo)。RedHat系統(tǒng)之磁盤IO性能測(cè)
試工具

#IOPS計(jì)算方法
   傳統(tǒng)磁盤本質(zhì)上一種機(jī)械裝置,如FC, SAS, SATA磁盤,轉(zhuǎn)速通常為5400/7200/10K/15K rpm不等。影響磁盤的關(guān)鍵因素是磁盤服務(wù)時(shí)間,即磁盤完成一個(gè)I/O請(qǐng)求所花費(fèi)的時(shí)間,它由尋道時(shí)間、旋轉(zhuǎn)延遲和數(shù)據(jù)傳輸時(shí)間三部分構(gòu)成。
   尋道時(shí)間Tseek是指將讀寫磁頭移動(dòng)至正確的磁道上所需要的時(shí)間。尋道時(shí)間越短,I/O操作越快,目前磁盤的平均尋道時(shí)間一般在3-15ms。
   旋轉(zhuǎn)延遲Trotation是指盤片旋轉(zhuǎn)將請(qǐng)求數(shù)據(jù)所在扇區(qū)移至讀寫磁頭下方所需要的時(shí)間。旋轉(zhuǎn)延遲取決于磁盤轉(zhuǎn)速,通常使用磁盤旋轉(zhuǎn)一周所需時(shí)間的1/2表示。比如,7200 rpm的磁盤平均旋轉(zhuǎn)延遲大約為60*1000/7200/2 = 4.17ms,而轉(zhuǎn)速為15000 rpm的磁盤其平均旋轉(zhuǎn)延遲約為2ms。
   數(shù)據(jù)傳輸時(shí)間Ttransfer是指完成傳輸所請(qǐng)求的數(shù)據(jù)所需要的時(shí)間,它取決于數(shù)據(jù)傳輸率,其值等于數(shù)據(jù)大小除以數(shù)據(jù)傳輸率。目前IDE/ATA能達(dá)到133MB/s,SATA II可達(dá)到300MB/s的接口數(shù)據(jù)傳輸率,數(shù)據(jù)傳輸時(shí)間通常遠(yuǎn)小于前兩部分時(shí)間。因此,理論上可以計(jì)算出磁盤的大IOPS,即IOPS = 1000 ms/ (Tseek + Troatation),忽略數(shù)據(jù)傳輸時(shí)間。假設(shè)磁盤平均物理尋道時(shí)間為3ms, 磁盤轉(zhuǎn)速為7200,10K,15K rpm,則磁盤IOPS理論大值分別為,
   IOPS = 1000 / (3 + 60000/7200/2) = 140
   IOPS = 1000 / (3 + 60000/10000/2) = 167
   IOPS = 1000 / (3 + 60000/15000/2) = 200
   固態(tài)硬盤SSD是一種電子裝置, 避免了傳統(tǒng)磁盤在尋道和旋轉(zhuǎn)上的時(shí)間花費(fèi),存儲(chǔ)單元尋址開銷大大降低,因此IOPS可以非常高,能夠達(dá)到數(shù)萬(wàn)甚至數(shù)十萬(wàn)。實(shí)際測(cè)量中,IOPS數(shù)值會(huì)受到很多因素的影響,包括I/O負(fù)載特征(讀寫比例,順序和隨機(jī),工作線程數(shù),隊(duì)列深度,數(shù)據(jù)記錄大小)、系統(tǒng)配置、操作系統(tǒng)、磁盤驅(qū)動(dòng)等等。因此對(duì)比測(cè)量磁盤IOPS時(shí),必須在同樣的測(cè)試基準(zhǔn)下進(jìn)行,即便如何也會(huì)產(chǎn)生一定的隨機(jī)不確定性。通常情況下,IOPS可細(xì)分為如下幾個(gè)指標(biāo):
   Toatal IOPS,混合讀寫和順序隨機(jī)I/O負(fù)載情況下的磁盤IOPS,這個(gè)與實(shí)際I/O情況最為相符,大多數(shù)應(yīng)用關(guān)注此指標(biāo)。
   1、Random Read IOPS,100%隨機(jī)讀負(fù)載情況下的IOPS。
   2、Random Write IOPS,100%隨機(jī)寫負(fù)載情況下的IOPS。
   3、Sequential Read IOPS,100%順序負(fù)載讀情況下的IOPS。
   4、Sequential Write IOPS,100%順序?qū)懾?fù)載情況下的IOPS。
   IOPS的測(cè)試benchmark工具主要有Iometer, IoZone, FIO等,可以綜合用于測(cè)試磁盤在不同情形下的IOPS。對(duì)于應(yīng)用系統(tǒng),需要首先確定數(shù)據(jù)的負(fù)載特征,然后選擇合理的IOPS指標(biāo)進(jìn)行測(cè)量和對(duì)比分析,據(jù)此選擇合適的存儲(chǔ)介質(zhì)和軟件系統(tǒng)。

創(chuàng)新互聯(lián)專注于下陸企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,購(gòu)物商城網(wǎng)站建設(shè)。下陸網(wǎng)站建設(shè)公司,為下陸等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

#下載http://freshmeat.net/projects/fio/

#安裝fio-2.0.13.tar.gz之前需要安裝開發(fā)工具包、libaio和libaio-devel

yum installgroup "Development tools"  OR:yum install  gccyum install libaio-0.3.107-10.el6.x86_64.rpm libaio-devel-0.3.107-10.el6.x86_64.rpm

#fio參數(shù)

filename=/dev/sdb1 測(cè)試文件名稱,通常選擇需要測(cè)試的盤的data目錄。 
direct=1 測(cè)試過程繞過機(jī)器自帶的buffer。使測(cè)試結(jié)果更真實(shí)。 
rw=randwrite 測(cè)試隨機(jī)寫的I/O 
rw=randrw 測(cè)試隨機(jī)寫和讀的I/O 
bs=16k 單次io的塊文件大小為16k 
bsrange=512-2048 同上,提定數(shù)據(jù)塊的大小范圍 
size=5g 本次的測(cè)試文件大小為5g,以每次4k的io進(jìn)行測(cè)試。 
numjobs=30 本次的測(cè)試線程為30. 
runtime=1000 測(cè)試時(shí)間為1000秒,如果不寫則一直將5g文件分4k每次寫完為止。 
ioengine=psync io引擎使用pync方式 
rwmixwrite=30 在混合讀寫的模式下,寫占30% 
group_reporting 關(guān)于顯示結(jié)果的,匯總每個(gè)進(jìn)程的信息。 
此外 
lockmem=1g 只使用1g內(nèi)存進(jìn)行測(cè)試。 
zero_buffers 用0初始化系統(tǒng)buffer。 
nrfiles=8 每個(gè)進(jìn)程生成文件的數(shù)量。 
bssplit=512/20:1k/20:2k/10:4k/40:8k/10
#2成512B,1KB,1成2KB,4成4KB,1成8KB的小文件進(jìn)行測(cè)試
rw=randrw
rwmixread=80 #8成讀,2成寫
direct=1 #不使用io設(shè)備buffer
size=4g
numjobs=16 #產(chǎn)生16個(gè)進(jìn)程
nrfiles=8 #每1個(gè)進(jìn)程生成文件數(shù)量
ioengine=libaio
#IO engine,種類豐富,測(cè)試nfs,cpu,nic使用不同的引擎。
directory=/mnt
# IOMeter defines the server loads as the following:
# iodepth=1 Linear
# iodepth=4 Very Light
# iodepth=8 Light
# iodepth=64 Moderate
# iodepth=256 Heavy
iodepth=64 #每個(gè)文件io隊(duì)列長(zhǎng)度
lockmem=1g #fio只使用1g內(nèi)存進(jìn)行測(cè)試
zero_buffers 用0初始化系統(tǒng)buffer
一般fio配置文件和參數(shù)都是支持k/m/g的標(biāo)識(shí)

#dd測(cè)試

1. dd if=/dev/zero of=test bs=64k count=16k
  這個(gè)很不準(zhǔn)確的,因?yàn)槊罱Y(jié)束的時(shí)候數(shù)據(jù)還沒有真正寫到磁盤上去
2. dd if=/dev/zero of=test bs=64k count=16k conv=fsync
  這個(gè)還算準(zhǔn)確,數(shù)據(jù)已經(jīng)寫入磁盤
3. dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
  這個(gè)可以當(dāng)成是模擬數(shù)據(jù)庫(kù)插入操作,所以很慢
  接著讓我們來(lái)看看buyvm的磁盤性能
dd if=/dev/zero of=test bs=64k count=16k
  1073741824 bytes (1.1 GB) copied, 2.99687 seconds, 358 MB/s
  第一種方式得到的結(jié)果貌似很快
dd if=/dev/zero of=test bs=64k count=16k conv=fsync
  1073741824 bytes (1.1 GB) copied, 13.9241 seconds, 77.1 MB/s
  這次慢了很多,這個(gè)數(shù)據(jù)才有參考價(jià)值
dd if=/dev/zero of=test bs=64k count=2k oflag=dsync
  134217728 bytes (134 MB) copied, 177.813 seconds, 755 kB/s
  這是buyvm的真正實(shí)力,我在84的vps上測(cè)可是有20M/s的

#HP DL2000 兩塊300G的SAS盤做成RAID1

1、直接讀塊設(shè)備,fio和dd測(cè)試吞吐量和IOPS

[root@localhost ~]# cat test.cfg
[global]
bs=1024k
ioengine=libaio
iodepth=4
size=1g
direct=1
filename=/dev/sda4
zero_buffers [seq-read] rw=read stonewall

測(cè)試結(jié)果:
read : io=1024.0MB, bw=183735KB/s, iops=179 , runt= 5707msec
[root@localhost ~]# dd if=/dev/zero of=/dev/sda4 bs=16k count=65536 conv=fsync
65536+0 records in65536+0 records out
1073741824 bytes (1.1 GB) copied, 5.85287 s, 183 MB/s

2、通過讀ext4文件系統(tǒng),fio和dd測(cè)試吞吐量和IOPS

[root@localhost ~]# cat test.cfg
[global]
bs=1024k
ioengine=libaio
iodepth=4
size=1g
direct=1
filename=file
directory=/mnt
zero_buffers [seq-read] rw=read stonewall 測(cè)試結(jié)果:
read : io=1024.0MB, bw=167264KB/s, iops=163 , runt=  6269msec
[root@localhost ~]# dd if=/dev/zero of=/mnt/file bs=16k count=65536 conv=fsync
65536+0 records in65536+0 records out
1073741824 bytes (1.1 GB) copied, 6.66798 s, 161 MB/s

#一起測(cè)試順序讀、隨機(jī)讀、順序?qū)憽㈦S機(jī)寫

[seq-read]
rw=read
stonewall

[rand-read]
rw=randread
stonewall

[seq-write]
rw=write
stonewall

[rand-read]
rw=randwrite
stonewall

[read-write]
rw=randrw
stonewall

網(wǎng)站題目:RedHat系統(tǒng)之磁盤IO性能測(cè)試工具-創(chuàng)新互聯(lián)
文章源于:http://muchs.cn/article16/dheogg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、小程序開發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司、商城網(wǎng)站、企業(yè)建站、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)