自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

分布式對(duì)象存儲(chǔ)系統(tǒng)Sheepdog性能測(cè)試

運(yùn)維 系統(tǒng)運(yùn)維 分布式
Sheepdog是一個(gè)分布式對(duì)象存儲(chǔ)系統(tǒng),專為虛擬機(jī)提供塊存儲(chǔ),號(hào)稱無(wú)單點(diǎn)、零配置、可線性擴(kuò)展等。本文主要對(duì)分布式對(duì)象存儲(chǔ)系統(tǒng)Sheepdog進(jìn)行性能測(cè)試,分享給各位。

Sheepdog是一個(gè)分布式對(duì)象存儲(chǔ)系統(tǒng),專為虛擬機(jī)提供塊存儲(chǔ),號(hào)稱無(wú)單點(diǎn)、零配置、可線性擴(kuò)展(省略更多優(yōu)點(diǎn)介紹)。本文主要關(guān)注其性能究竟如何,測(cè)試版本為目前的***穩(wěn)定版0.7.4。

測(cè)試環(huán)境

  • 節(jié)點(diǎn)數(shù)量:6個(gè)
  • 磁盤(pán):各節(jié)點(diǎn)都配備7200轉(zhuǎn)SATA硬盤(pán),型號(hào)WDC WD10EZEX-22RKKA0,容量為1TB,另外測(cè)試節(jié)點(diǎn)(即用于啟動(dòng)虛擬客戶機(jī)的宿主機(jī))多配置一塊SSD硬盤(pán),型號(hào)INTEL SSDSA2CW300G3,容量為300GB
  • 網(wǎng)絡(luò):測(cè)試節(jié)點(diǎn)配備PCI-E雙千兆網(wǎng)卡,通過(guò)bonding進(jìn)行負(fù)載均衡
  • 文件系統(tǒng):ext4fs,掛載參數(shù):rw,noatime,barrier=0,user_xattr,data=writeback
  • sheepdog集群
    • 可用空間:6個(gè)節(jié)點(diǎn)各分配100GB,總共600GB
    • 對(duì)象副本數(shù)量:3個(gè),客戶機(jī)實(shí)際***可用空間為200GB,接近項(xiàng)目規(guī)劃的容量
    • 對(duì)象緩存:使用SSD硬盤(pán),分配256GB,可完全緩存客戶機(jī)文件系統(tǒng),隨測(cè)試項(xiàng)目需要掛載或卸載
  • 虛擬客戶機(jī)
    • 資源:4GB內(nèi)存,4個(gè)邏輯CPU
    • 使用qemu 1.7啟動(dòng),支持KVM加速、virtio
  • 兩大測(cè)試項(xiàng)目
    • IOPS:主要考察較小數(shù)據(jù)塊隨機(jī)讀和寫(xiě)的能力,測(cè)試工具fio(sudo apt-get install fio),測(cè)試文件固定為150GB
    • 吞吐量:主要考察較大數(shù)據(jù)塊順序讀或者寫(xiě)的能力,測(cè)試工具iozone(sudo apt-get install iozone3),測(cè)試文件從64MB倍數(shù)遞增到4GB,如沒(méi)有特別說(shuō)明,測(cè)試結(jié)果取自操作512MB的數(shù)據(jù)文件

除特別說(shuō)明,qemu啟動(dòng)虛擬客戶機(jī)命令如下:

  1. qemu-system-x86_64 --enable-kvm -m 4096 -smp 4 -drive file=sheepdog:mint,if=virtio,index=0 \ 
  2. -drive file=sheepdog:data,if=virtio,index=1 -net nic,model=virtio -net user -vnc :1 -daemonize 

IOPS測(cè)試

測(cè)試須知

關(guān)于SATA硬盤(pán)的IOPS

測(cè)試用的普通7200轉(zhuǎn)SATA硬盤(pán),官方公布其平均尋道時(shí)間10.5毫秒,所以,根據(jù)以下公式,理論上的IOPS值最多只有65。

實(shí)測(cè)結(jié)果,在單線程同步IO的情況下(下圖深藍(lán)線),也是65,在多任務(wù)(紫線)或者使用異步IO(黃線)的情況下,由于操作系統(tǒng)IO調(diào)度,IOPS能夠達(dá)到80到100之間。如果進(jìn)行讀寫(xiě)操作的文件遠(yuǎn)遠(yuǎn)小于SATA磁盤(pán)大小,縮小了存儲(chǔ)單元尋址范圍,減少了全磁盤(pán)尋道時(shí)間,也能提高IOPS,例如,測(cè)試文件大小占磁盤(pán)大小的1/8的時(shí)候,IOPS***在90左右(淺藍(lán)線)。

關(guān)于SSD硬盤(pán)的IOPS

測(cè)試用的SSD硬盤(pán),在單線程同步IO的情況下,IOPS最多能夠達(dá)到9000左右(下圖深藍(lán)線),在多任務(wù)(紫線)或者異步IO(黃線)的情況下,最多能夠達(dá)到40000-50000之間。由于構(gòu)造原理不同于傳統(tǒng)磁盤(pán),減小測(cè)試文件大小并不能明顯提高IOPS。

關(guān)于讀寫(xiě)比例

由于大多數(shù)業(yè)務(wù)場(chǎng)景既有讀操作,也有寫(xiě)操作,而且一般讀操作比寫(xiě)操作多很多,因此,讀寫(xiě)混合測(cè)試項(xiàng)目中的讀寫(xiě)比例設(shè)定為4:1。一般業(yè)務(wù)很少有完全隨機(jī)寫(xiě)的情況,因此不進(jìn)行只寫(xiě)測(cè)試。

關(guān)于電梯算法

虛擬的客戶機(jī)操作系統(tǒng)的IO調(diào)度算法使用noop,網(wǎng)上有資料能夠提高IOPS,但是實(shí)測(cè)效果不明顯,因此最終報(bào)告并沒(méi)有把它單列出來(lái)。

IOPS測(cè)試1:不使用對(duì)象緩存,只讀測(cè)試

單線程同步IO的情況下(下圖深藍(lán)線),sheepdog的IOPS差不多達(dá)到100,比單節(jié)點(diǎn)單SATA硬盤(pán)高,究其原因:客戶機(jī)中的測(cè)試文件為150GB,共有三個(gè)副本,即共占450GB,集群有6個(gè)節(jié)點(diǎn),平均每個(gè)節(jié)點(diǎn)75GB,而各個(gè)節(jié)點(diǎn)所在磁盤(pán)容量為1TB,僅占其1/13,因此,無(wú)其它IO任務(wù)的情況下,IOPS會(huì)比全磁盤(pán)隨機(jī)操作高。

減少客戶機(jī)的測(cè)試文件大小為原來(lái)的1/8,即19GB,IOPS能夠達(dá)到130-140左右,驗(yàn)證了無(wú)其它IO任務(wù)的情況下,測(cè)試文件越小,IOPS越高(淺藍(lán)線)。

恢復(fù)客戶機(jī)的測(cè)試文件為150GB,在多任務(wù)(線程數(shù)量為10,紫線)或者異步IO(隊(duì)列深度為10,黃線)的情況下,IOPS可達(dá)230-250。

250左右是否該sheepdog集群的極限?進(jìn)一步換其它numjob和iodepth的組合進(jìn)行測(cè)試,答案是肯定的,測(cè)試結(jié)果都在250左右,以下是線程數(shù)量為8,異步IO隊(duì)列深度分別為1、4、16、64、256的測(cè)試結(jié)果,線程數(shù)量增加到16,測(cè)試數(shù)據(jù)并沒(méi)有提高。

IOPS測(cè)試2:使用對(duì)象緩存,只讀測(cè)試

單線程同步IO、使用對(duì)象緩存且緩存命中率100%的情況下(下圖藍(lán)線),sheepdog的IOPS***可達(dá)6000,對(duì)比相同條件下SSD硬盤(pán)的測(cè)試結(jié)果(***9000),還是有些損耗。

通過(guò)多任務(wù)(紫線)或者異步IO(黃線)的方式提高并發(fā)IO數(shù)量,在緩存命中率100%的情況下,IOPS可以提高到40000-50000,基本與相同條件下SSD硬盤(pán)的測(cè)試結(jié)果相當(dāng)。

注意上圖為對(duì)數(shù)刻度,且沒(méi)有數(shù)據(jù)值,很難比較數(shù)值大小,下圖省略了一半數(shù)據(jù)塊,但是標(biāo)上了數(shù)據(jù)值。

之所以強(qiáng)調(diào)緩存命中率,是因?yàn)樵诓煌耆芯彺娴臅r(shí)候,IOPS下降很厲害,低于80%的話,可能還不如沒(méi)有對(duì)象緩存。下圖是sheepdog對(duì)象緩存命中率與IOPS的關(guān)系圖,其中,測(cè)試的數(shù)據(jù)塊大小從512B倍數(shù)遞增到512KB,緩存命中率是在測(cè)試過(guò)程中,根據(jù)sheepdog的cache目錄中已有的對(duì)象文件數(shù)量估算的平均值,IOPS值是讀取數(shù)據(jù)塊操作在估算的緩存命中率條件下測(cè)量的平均值。

50000是否該sheepdog集群的極限?仿照上面的方法進(jìn)行測(cè)試,答案也是肯定的,測(cè)試結(jié)果都在50000以內(nèi),以下是線程數(shù)量為8,異步IO隊(duì)列深度分別為1、4、16、64、256的測(cè)試結(jié)果,線程數(shù)量增加到16,測(cè)試數(shù)據(jù)并沒(méi)有提高。

IOPS測(cè)試3:不使用對(duì)象緩存,讀寫(xiě)混合測(cè)試

讀寫(xiě)混合測(cè)試的IOPS比只讀測(cè)試的結(jié)果,總的來(lái)說(shuō)要低一些,而且起伏較大,需要多次測(cè)試計(jì)算其平均值。

單線程同步IO的情況下(下圖深藍(lán)線),能夠達(dá)到80-100。

減少客戶機(jī)的測(cè)試文件大小為原來(lái)的1/8,即19GB,IOPS能夠達(dá)到100-120(淺藍(lán)線)。

恢復(fù)客戶機(jī)的測(cè)試文件為150GB,在多任務(wù)(線程數(shù)量為10,紫線)或者異步IO(隊(duì)列深度為10,黃線)的情況下,IOPS大多在180-250之間,但也有時(shí)候只到160左右。

IOPS測(cè)試4:使用對(duì)象緩存,讀寫(xiě)混合測(cè)試

單線程同步IO、使用對(duì)象緩存且緩存命中率100%的情況下,IOPS差不多達(dá)到4000。

通過(guò)多任務(wù)或者異步IO的方式提高并發(fā)IO數(shù)量,在緩存命中率100%的情況下,IOPS可達(dá)10000-20000之間。

注意上圖為對(duì)數(shù)刻度,且沒(méi)有數(shù)據(jù)值,下圖省略了一半數(shù)據(jù)塊,但是標(biāo)上了數(shù)據(jù)值??梢钥吹?,大數(shù)據(jù)塊讀寫(xiě)混合的情況下,多任務(wù)或異步IO的IOPS可能還不如單任務(wù)同步IO


吞吐量測(cè)試

測(cè)試須知

關(guān)于SATA硬盤(pán)的吞吐量

普通7200轉(zhuǎn)SATA硬盤(pán)的吞吐量數(shù)據(jù),對(duì)比一下后面SSD硬盤(pán)的吞吐量數(shù)據(jù),說(shuō)明傳統(tǒng)磁盤(pán)順序讀寫(xiě)的能力還是相當(dāng)出色的。

關(guān)于SSD硬盤(pán)的吞吐量

大數(shù)據(jù)塊(512KB以上)順序讀,吞吐量可達(dá)250MB/s-270MB/s,順序?qū)懀掏铝靠蛇_(dá)200MB/s-210MB/s。

小數(shù)據(jù)塊(16KB)順序讀,吞吐量也有140MB/s,順序?qū)懘蟾?20MB/s-130MB/s。

無(wú)優(yōu)化sheepdog的吞吐量

在軟硬件不做任何優(yōu)化的情況下(不綁定雙網(wǎng)卡、不使用virtio、以默認(rèn)參數(shù)啟動(dòng)sheepdog),sheepdog的吞吐量數(shù)據(jù)比較低:

  • 順序?qū)?/p>

    • 數(shù)據(jù)塊大小為16KB,吞吐量13-14MB/s
    • 數(shù)據(jù)塊大小在256KB-4MB之間,吞吐量30-35MB/s
  • 順序讀

    • 數(shù)據(jù)塊大小為16KB,吞吐量25MB/s左右,如果數(shù)據(jù)文件大小超過(guò)可用內(nèi)存,降低到20MB/s
    • 數(shù)據(jù)塊大小在512KB-4MB之間,吞吐量125-140MB/s,如果數(shù)據(jù)文件大小超過(guò)可用內(nèi)存,降低到80MB/s以下

以下兩圖,上圖為數(shù)據(jù)文件512MB的測(cè)試數(shù)據(jù),下圖為數(shù)據(jù)文件4GB的測(cè)試數(shù)據(jù)

注,不使用virtio方式啟動(dòng)sheepdog的命令行參數(shù)為:

  1. qemu-system-x86_64 --enable-kvm -m 4096 -smp 4 -drive file=sheepdog:mint,index=0 \ 
  2. -drive file=sheepdog:data,index=1 -vnc :1 -daemonize 

吞吐量測(cè)試1:不使用對(duì)象緩存

從測(cè)試結(jié)果看,使用virtio方式啟動(dòng)客戶機(jī)有利有弊:

  • 提高了中小數(shù)據(jù)塊讀寫(xiě)操作的吞吐量

    • 當(dāng)數(shù)據(jù)塊大小在16KB-512KB之間時(shí),順序讀的吞吐量提高10MB/s-30MB/s不等
    • 當(dāng)數(shù)據(jù)塊大小在16KB-256KB之間時(shí),順序?qū)懙耐掏铝刻岣?MB/s-8MB/s不等
  • 大大降低了超大數(shù)據(jù)塊讀操作的吞吐量,至于為何virtio在這種情況下會(huì)降低測(cè)試的吞吐量,尚不清楚

    • 當(dāng)數(shù)據(jù)塊大小達(dá)到2MB或者4MB時(shí),順序讀的吞吐量降低80MB/s-90MB/s

以下兩圖,上圖為512MB下的測(cè)試數(shù)據(jù),下圖為該情況下,與無(wú)優(yōu)化sheepdog讀寫(xiě)512MB數(shù)據(jù)文件兩者吞吐量之差。

吞吐量測(cè)試2:使用對(duì)象緩存

使用了對(duì)象緩存,順序讀寫(xiě)的吞吐量與數(shù)據(jù)文件大小沒(méi)有直接關(guān)系,即使數(shù)據(jù)文件大小超過(guò)可用內(nèi)存。

同時(shí)也使用了virtio,并沒(méi)有因此降低讀取大數(shù)據(jù)塊的吞吐量。

由于SSD硬盤(pán)的特點(diǎn),數(shù)據(jù)塊越大,吞吐量越高,在數(shù)據(jù)塊大小為4MB的情況下,順序讀的吞吐量可達(dá)240MB/s,順序?qū)懸灿?30MB/s;如果數(shù)據(jù)塊大小只有16KB,順序讀和順序?qū)懙耐掏铝糠謩e只有55MB/s和35MB/s。


總結(jié)sheepdog性能

以上為sheepdog集群節(jié)點(diǎn)數(shù)為6個(gè),且各節(jié)點(diǎn)都只掛載一塊SATA硬盤(pán)的情況下測(cè)得的結(jié)果,如果增加集群節(jié)點(diǎn)數(shù),并且每個(gè)節(jié)點(diǎn)都掛滿硬盤(pán),IOPS應(yīng)該會(huì)更高,而吞吐量取決于緩存和網(wǎng)絡(luò)帶寬,應(yīng)該不會(huì)有明顯變化。

責(zé)任編輯:黃丹 來(lái)源: UC技術(shù)博客
相關(guān)推薦

2013-12-27 10:56:42

分布式對(duì)象存儲(chǔ)Sheepdog性能測(cè)試

2017-04-14 09:48:25

分布式存儲(chǔ)系統(tǒng)

2018-09-29 14:08:04

存儲(chǔ)系統(tǒng)分布式

2017-07-18 09:51:36

文件存儲(chǔ)系統(tǒng)

2017-10-16 10:24:47

LogDevice存儲(chǔ)系統(tǒng)

2017-10-17 08:33:31

存儲(chǔ)系統(tǒng)分布式

2016-12-06 20:01:00

超融合

2017-12-18 10:47:04

分布式存儲(chǔ)數(shù)據(jù)

2017-10-12 09:36:54

分布式存儲(chǔ)系統(tǒng)

2017-10-19 08:45:15

存儲(chǔ)系統(tǒng)HBase

2018-11-20 09:19:58

存儲(chǔ)系統(tǒng)雪崩效應(yīng)

2012-12-28 17:31:06

2018-05-10 09:34:21

spark存儲(chǔ)系統(tǒng)

2019-05-13 15:20:42

存儲(chǔ)系統(tǒng)算法

2019-10-15 10:59:43

分布式存儲(chǔ)系統(tǒng)

2021-07-04 07:07:06

Ceph分布式存儲(chǔ)架構(gòu)

2021-08-07 05:00:20

存儲(chǔ)系統(tǒng)

2010-07-02 10:08:12

BigtableGoogle

2018-03-13 08:45:08

存儲(chǔ)系統(tǒng)DHT算法

2018-10-29 12:42:23

Ceph分布式存儲(chǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)