目錄
fio工具參數(shù)解釋
Glusterfs 和NFS 性能測(cè)試
順序?qū)懀?/p>
隨機(jī)寫(xiě):
順序讀:
隨機(jī)讀:
隨機(jī)讀寫(xiě):
參數(shù)說(shuō)明:
測(cè)試結(jié)論:
與NFS對(duì)比
壓測(cè)對(duì)比結(jié)果
NFS和GlusterFs的優(yōu)缺點(diǎn)
NFS的優(yōu)點(diǎn)
NFS的缺點(diǎn)
GlusterFS的優(yōu)點(diǎn)
GlusterFS的缺點(diǎn)
NFS與GlusterFS對(duì)比
1. 功能對(duì)比
2. 吞吐量對(duì)比
3. 可靠性對(duì)比
4. 擴(kuò)展性對(duì)比
fio工具參數(shù)解釋
–filename
待測(cè)試的文件或塊設(shè)備
若為文件,則代表測(cè)試文件系統(tǒng)的性能;例:–filename=/opt/test.img 若為塊設(shè)備,則代表測(cè)試裸設(shè)備的性能; 例:–filename=/dev/sda
–bs
單次IO的塊大?。y(cè)試磁盤(pán)的io,盡量使用小文件)
–ioengine
采用的文件讀寫(xiě)方式
-
–sync:采用read,write,使用fseek定位讀寫(xiě)位置。
-
–psync:采用pread、pwrite進(jìn)行文件讀寫(xiě)操作
-
–vsync:采用readv(2) orwritev(2)進(jìn)行文件讀寫(xiě)操作
read()和write()系統(tǒng)調(diào)用每次在文件和進(jìn)程的地址空間之間傳送一塊連續(xù)的數(shù)據(jù)。但是,應(yīng)用有時(shí)也需要將分散在內(nèi)存多處地方的數(shù)據(jù)連續(xù)寫(xiě)到文件中,或者反之。在這種情況下,如果要從文件中讀一片連續(xù)的數(shù)據(jù)至進(jìn)程的不同區(qū)域,使用read()則要么一次將它們讀至一個(gè)較大的緩沖區(qū)中,然后將它們分成若干部分復(fù)制到不同的區(qū)域,要么調(diào)用read()若干次分批將它們讀至不同區(qū)域。同樣,如果想將程序中不同區(qū)域的數(shù)據(jù)塊連續(xù)地寫(xiě)至文件,也必須進(jìn)行類(lèi)似的處理。UNIX提供了另外兩個(gè)函數(shù)—readv()和writev(),它們只需一次系統(tǒng)調(diào)用就可以實(shí)現(xiàn)在文件和進(jìn)程的多個(gè)緩沖區(qū)之間傳送數(shù)據(jù),免除了多次系統(tǒng)調(diào)用或復(fù)制數(shù)據(jù)的開(kāi)銷(xiāo)。readv()稱(chēng)為散布讀,即將文件中若干連續(xù)的數(shù)據(jù)塊讀入內(nèi)存分散的緩沖區(qū)中。writev()稱(chēng)為聚集寫(xiě),即收集內(nèi)存中分散的若干緩沖區(qū)中的數(shù)據(jù)寫(xiě)至文件的連續(xù)區(qū)域中。
-
–libaio:Linux異步讀寫(xiě)IO(Linuxnative asynchronous I/O)
-
–posixaio: glibc POSIX 異步IO讀寫(xiě),使用aio_read(3)and aio_write(3)實(shí)現(xiàn)IO讀寫(xiě)。
–rw
讀寫(xiě)模式。
-
read:順序讀測(cè)試,使用方式–rw=read
-
write:順序?qū)憸y(cè)試,使用方式–rw=write
-
randread:隨機(jī)讀測(cè)試,使用方式–rw=randread
-
randwrite:隨機(jī)寫(xiě)測(cè)試,使用方式–rw=randwrite
-
randrw:隨機(jī)讀寫(xiě),–rw=randrw;默認(rèn)比率為5:5,通過(guò)參數(shù)–rwmixread設(shè)定讀的比率,如–rw=randrw-rwmixread=70,說(shuō)明讀寫(xiě)比率為70:30?;騬wmixwrite
–time_based
如果設(shè)置的job已被完全讀寫(xiě)或?qū)懲?,也?huì)執(zhí)行完runtime規(guī)定的時(shí)間。它是通過(guò)循環(huán)執(zhí)行相同的負(fù)載來(lái)實(shí)現(xiàn)的。加上這個(gè)參數(shù)可以防止job提前結(jié)束。
–refill_buffers
每次提交后都重復(fù)填充io buffer
–norandommap
在進(jìn)行隨機(jī) I/O 時(shí),F(xiàn)IO 將覆蓋文件的每個(gè)塊。若給出此參數(shù),則將選擇新的偏移量而不查看 I/O 歷史記錄。
–group_reporting
關(guān)于顯示結(jié)果的,匯總每個(gè)進(jìn)程的信息
–name
測(cè)試結(jié)果輸出的文件名稱(chēng)
–size
測(cè)試的文件大小
– nrfiles
每個(gè)進(jìn)程生成的文件數(shù)量
– zero_buffers
用0初始化系統(tǒng)buffer
– randrepeat
隨機(jī)序列是否可重復(fù),True(1)表示隨機(jī)序列可重復(fù),F(xiàn)alse(0)表示隨機(jī)序列不可重復(fù)。默認(rèn)為 True(1)。
– sync
設(shè)置同步模式,同步–sync=1,異步–sync=0
– fsync
設(shè)置數(shù)據(jù)同步模式,同步-fsync=1,異步-fsync=0(有一個(gè)io就同步)
– numjobs
測(cè)試進(jìn)程的并發(fā)數(shù),默認(rèn)為16(這個(gè)值和cpu數(shù)量有關(guān))
Glusterfs 和NFS 性能測(cè)試
順序?qū)懀?/h4>
fio --filename=/mnt/test-volume/sunwenbo-testing --bs=4k --ioengine=libaio --iodepth=32 --direct=1 --rw=write --time_based --runtime=600 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-randwrite-iops --size=10G
fio --filename=/mnt/test-volume/sunwenbo-testing --bs=4k --ioengine=libaio --iodepth=32 --direct=1 --rw=write --time_based --runtime=600 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-randwrite-iops --size=10G
??
隨機(jī)寫(xiě):
fio --filename=/mnt/test-volume/sunwenbo-testing --bs=4k --ioengine=libaio --iodepth=32 --direct=1 --rw=randwrite --time_based --runtime=200 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-randwrite-iops --size=10G
順序讀:
fio --filename=/mnt/test-volume/sunwenbo-testing --bs=4k --ioengine=libaio --iodepth=32 --direct=1 --rw=read --time_based --runtime=600 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-randwrite-iops --size=10G
隨機(jī)讀:
fio --filename=/mnt/test-volume/sunwenbo-testing --bs=4k --ioengine=libaio --iodepth=32 --direct=1 --rw=randread --time_based --runtime=200 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-randread-iops --size=10G
隨機(jī)讀寫(xiě):
fio --filename=/mnt/test-volume/sunwenbo-testing --bs=4k --ioengine=libaio --iodepth=32 --direct=1 --rw=randrw --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-randwriteread-iops --size=10G
參數(shù)說(shuō)明:
bs:?jiǎn)未蝘o的塊文件大小為4k
size:本次的測(cè)試文件大小為10G,以每次4k的io進(jìn)行測(cè)試。
runtime:測(cè)試時(shí)間 秒
rw:順序?qū)?讀 隨機(jī)讀/寫(xiě) 隨機(jī)讀寫(xiě)
direct:=1 測(cè)試過(guò)程繞過(guò)機(jī)器自帶的buffer。使測(cè)試結(jié)果更真實(shí)。
ioengine: =libaio Linux異步讀寫(xiě)IO
iodepth:隊(duì)列深度,只有使用libaio時(shí)才有意義。這是一個(gè)可以影響IOPS的參數(shù)。
numjobs: 測(cè)試進(jìn)程的并發(fā)數(shù),默認(rèn)為16(這個(gè)值和cpu數(shù)量有關(guān))
bs |
4k |
8k |
32k |
64k |
256k |
1024k |
---|---|---|---|---|---|---|
順序?qū)?iops/bw |
22938/91753 |
11301/90513 |
2819/90223 |
1411/90363 |
352.15/90154 |
87.76/89919 |
隨機(jī)寫(xiě) iops/bw |
1200/4802 |
1156/9251 |
1003/32116 |
825/52826 |
328/83997 |
87.87/90029 |
順序讀 iops/bw |
26035/104140 |
26017/208140 |
8356/267403 |
4177/267387 |
1044/267401 |
261/267285 |
隨機(jī)讀 iops/bw |
26105/104422 |
26222/209779 |
8390/268495 |
4193/268390 |
1055/270179 |
266/272840 |
隨機(jī)讀寫(xiě) iops/bw |
read:767/3071 write: 765/3061 |
717/5754 719/5758 |
589.22/18856 586/18775 |
465/29776 481/30839 |
182.79/46838 197/49789 |
55/57018 56/57953 |
測(cè)試結(jié)論:
順序?qū)懀弘S著bs越大,iops每秒的讀寫(xiě)次數(shù)越少。bw沒(méi)有太大變化
隨機(jī)寫(xiě):隨著bs越大,iops每秒的讀寫(xiě)次數(shù)越少。bw增長(zhǎng)一倍
順序讀:隨著bs越大,iops每秒的讀寫(xiě)次數(shù)越少。bw在bs 4k - 32k的情況下增長(zhǎng)比較明顯 32k以上達(dá)到了一定的瓶頸
隨機(jī)讀:隨著bs越大,iops每秒的讀寫(xiě)次數(shù)越少。bw在bs 4k - 32k的情況下增長(zhǎng)比較明顯 32k以上達(dá)到了一定的瓶頸
隨機(jī)讀寫(xiě):隨著bs越大,iops每秒的讀寫(xiě)次數(shù)越少。bw隨著bs的增大而增大
與NFS對(duì)比
10G文件
第一行是glusterfs的壓測(cè)數(shù)據(jù)
第二行為nfs的壓測(cè)數(shù)據(jù)
Iops: 每秒的讀寫(xiě)次數(shù)
bw (KiB/s): 每秒讀/寫(xiě) KB
bs |
4k |
8k |
32k |
64k |
256k |
1024k |
---|---|---|---|---|---|---|
順序?qū)?iops/bw |
22938/91753 7596/30384 |
113012/90513 6668/53347 |
2819/90223 4548/145558 |
1411/90363 3035/194252 |
352.15/90154 725/185792 |
87.76/89919 205/209920 |
隨機(jī)寫(xiě) iops/bw |
1200/4802 7219/28876 |
1156/9251 7002/56018 |
1003/32116 5682/181839 |
825/52826 3009/192603 |
328/83997 744/190548 |
87.87/90029 176/181225 |
順序讀 iops/bw |
26035/104140 72560/290242 |
26017/208140 65752/526017 |
8356/267403 53503/1671 |
4177/267387 40054/2503 |
1044/267401 16968/4242 |
261/267285 4735/4735 |
隨機(jī)讀 iops/bw |
26105/104422 72663/290654 |
26222/209779 66809/534479 |
8390/268495 53342/1666 |
4193/268390 40213/2513 |
1055/270179 16770/4192 |
266/272840 4475/4475 |
隨機(jī)讀寫(xiě) iops/bw |
read:767/3071 write: 765/3061 read:5791/23164 write: 5793/23174 |
read: 717/5754 write: 719/5758 read: 5744/45956 write: 5733/45869 |
read: 589.22/18856 write: 586/18775 read: 5267/84282 write: 5273/84376 |
read: 465/29776 write: 481/30839 read: 2802/179387 write: 2811/179916 |
read:182.79/46838 write: 197/49789 read: 695/178129 write: 701/179471 |
read: 55/57018 write: 56/57953 read: 172/176817 write: 174/179043 |
壓測(cè)對(duì)比結(jié)果
順序?qū)懀篵s在小于8k時(shí) GlusterFS的iops和bw都高于NFS,bs一旦超過(guò)了8k iops 和bw都低于NFS
隨機(jī)寫(xiě):NFS整體高于GlusterFS
順序讀:bs低于8k時(shí)GlusterFS 每秒寫(xiě)入的字節(jié)數(shù)低于NFS ,大于8k時(shí)bw遠(yuǎn)遠(yuǎn)超過(guò)NFS。整體iops NFS高于glusterfs(讀大文件時(shí),glusterfs性能更優(yōu))
隨機(jī)讀:bs低于8k時(shí)GlusterFS 每秒寫(xiě)入的字節(jié)數(shù)低于NFS,大于8k時(shí)每秒讀取的數(shù)據(jù)遠(yuǎn)遠(yuǎn)超過(guò)NFS,但是bw低于glusterfs意。整體iops NFS高于glusterfs (讀大文件時(shí),glusterfs性能更優(yōu))
隨機(jī)讀寫(xiě):NFS高于GlusterFs
NFS和GlusterFs的優(yōu)缺點(diǎn)
NFS
NFS的優(yōu)點(diǎn)
NFS是Linux操作系統(tǒng)下最常用的網(wǎng)絡(luò)文件系統(tǒng)之一,它通過(guò)網(wǎng)絡(luò)將一個(gè)文件系統(tǒng)掛載在另一臺(tái)主機(jī)上,使得多臺(tái)主機(jī)可以共享同一個(gè)文件系統(tǒng)。NFS的優(yōu)點(diǎn)如下:
(1) 簡(jiǎn)單易用:NFS的配置和使用都非常簡(jiǎn)單,只需要在服務(wù)端開(kāi)啟NFS服務(wù),然后在客戶(hù)端進(jìn)行掛載即可。
(2) 效率高:NFS的數(shù)據(jù)傳輸采用RPC協(xié)議,傳輸效率高,數(shù)據(jù)傳輸速度快。
(3) 兼容性強(qiáng):NFS支持跨平臺(tái),可以在Linux、Unix、Windows等不同操作系統(tǒng)間進(jìn)行文件共享。
NFS的缺點(diǎn)
NFS也存在一些缺點(diǎn),主要表現(xiàn)在以下幾個(gè)方面:
(1) 安全性較差:由于NFS沒(méi)有加密機(jī)制,所以在使用NFS進(jìn)行文件共享時(shí),可能會(huì)存在數(shù)據(jù)泄露的風(fēng)險(xiǎn)。
(2) 可靠性不高:NFS對(duì)網(wǎng)絡(luò)環(huán)境的要求比較高,如果網(wǎng)絡(luò)環(huán)境不穩(wěn)定,容易導(dǎo)致文件共享出現(xiàn)故障。
(3) 擴(kuò)展性差:NFS的擴(kuò)展性比較差,當(dāng)需要擴(kuò)容時(shí),需要手動(dòng)進(jìn)行配置,操作比較繁瑣。
GlusterFS的優(yōu)點(diǎn)
GlusterFS是一個(gè)分布式文件系統(tǒng),它可以將多臺(tái)計(jì)算機(jī)的硬盤(pán)空間組合成一個(gè)大的存儲(chǔ)空間,并提供統(tǒng)一的訪(fǎng)問(wèn)接口。GlusterFS的優(yōu)點(diǎn)如下:
(1) 可靠性高:GlusterFS可以將數(shù)據(jù)進(jìn)行分布式備份,保證數(shù)據(jù)的可靠性。
(2) 擴(kuò)展性強(qiáng):GlusterFS支持在線(xiàn)擴(kuò)容,不需要停止服務(wù),可以方便地對(duì)存儲(chǔ)空間進(jìn)行擴(kuò)容。
(3) 靈活性好:GlusterFS的架構(gòu)設(shè)計(jì)比較靈活,可以根據(jù)不同的需求選擇不同的存儲(chǔ)方案。
GlusterFS的缺點(diǎn)
GlusterFS也存在一些缺點(diǎn),主要表現(xiàn)在以下幾個(gè)方面:
(1) 效率低:由于GlusterFS采用的是分布式存儲(chǔ)方案,數(shù)據(jù)的讀寫(xiě)需要通過(guò)網(wǎng)絡(luò)通信,所以效率比較低。
(2) 配置復(fù)雜:GlusterFS的配置比較復(fù)雜,需要對(duì)系統(tǒng)和存儲(chǔ)方案進(jìn)行深入的了解,否則容易導(dǎo)致配置錯(cuò)誤。
(3) 兼容性差:GlusterFS只支持Linux操作系統(tǒng),對(duì)其他操作系統(tǒng)的支持比較差。
NFS與GlusterFS對(duì)比
1. 功能對(duì)比
NFS和GlusterFS都是用于虛擬化存儲(chǔ)的解決方案,它們的核心功能都是實(shí)現(xiàn)文件共享。但是它們的實(shí)現(xiàn)方式不同,NFS是基于網(wǎng)絡(luò)文件系統(tǒng)的協(xié)議實(shí)現(xiàn)文件共享,而GlusterFS是基于分布式文件系統(tǒng)的協(xié)議實(shí)現(xiàn)文件共享。
2. 吞吐量對(duì)比
在吞吐量方面,GlusterFS比NFS要慢,因?yàn)镚lusterFS的數(shù)據(jù)讀寫(xiě)需要經(jīng)過(guò)網(wǎng)絡(luò)通信,而NFS的數(shù)據(jù)讀寫(xiě)直接在本地磁盤(pán)操作,所以相對(duì)來(lái)說(shuō),NFS的吞吐量要高一些。
3. 可靠性對(duì)比
在可靠性方面,GlusterFS比NFS要好。GlusterFS可以將數(shù)據(jù)進(jìn)行分布式備份,保證數(shù)據(jù)的可靠性,而NFS沒(méi)有這個(gè)功能,如果其中的某一臺(tái)服務(wù)器出現(xiàn)問(wèn)題,可能會(huì)導(dǎo)致共享文件系統(tǒng)無(wú)法正常訪(fǎng)問(wèn)。
4. 擴(kuò)展性對(duì)比
在擴(kuò)展性方面,GlusterFS比NFS要好。GlusterFS支持在線(xiàn)擴(kuò)容,可以方便地對(duì)存儲(chǔ)空間進(jìn)行擴(kuò)容,而NFS需要手動(dòng)進(jìn)行配置,操作比較繁瑣。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-532208.html
綜上所述,NFS和GlusterFS各有優(yōu)缺點(diǎn),在選擇時(shí)需要根據(jù)自身需求進(jìn)行選擇。如果對(duì)吞吐量和操作復(fù)雜度有較高要求,可以選擇NFS,如果對(duì)可靠性和擴(kuò)展性有較高要求,可以選擇GlusterFS。當(dāng)然,也可以結(jié)合兩個(gè)解決方案的優(yōu)勢(shì),選擇適合自己的混合存儲(chǔ)方案。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-532208.html
到了這里,關(guān)于GlusterFs 分布式復(fù)制卷(Distributed-Replicate)性能測(cè)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!