成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分布式對象存儲系統Sheepdog性能測試

運維 系統運維 分布式
Sheepdog是一個分布式對象存儲系統,專為虛擬機提供塊存儲,號稱無單點、零配置、可線性擴展等。本文主要對分布式對象存儲系統Sheepdog進行性能測試,分享給各位。

Sheepdog是一個分布式對象存儲系統,專為虛擬機提供塊存儲,號稱無單點、零配置、可線性擴展(省略更多優點介紹)。本文主要關注其性能究竟如何,測試版本為目前的***穩定版0.7.4。

測試環境

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

除特別說明,qemu啟動虛擬客戶機命令如下:

  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測試

測試須知

關于SATA硬盤的IOPS

測試用的普通7200轉SATA硬盤,官方公布其平均尋道時間10.5毫秒,所以,根據以下公式,理論上的IOPS值最多只有65。

實測結果,在單線程同步IO的情況下(下圖深藍線),也是65,在多任務(紫線)或者使用異步IO(黃線)的情況下,由于操作系統IO調度,IOPS能夠達到80到100之間。如果進行讀寫操作的文件遠遠小于SATA磁盤大小,縮小了存儲單元尋址范圍,減少了全磁盤尋道時間,也能提高IOPS,例如,測試文件大小占磁盤大小的1/8的時候,IOPS***在90左右(淺藍線)。

關于SSD硬盤的IOPS

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

關于讀寫比例

由于大多數業務場景既有讀操作,也有寫操作,而且一般讀操作比寫操作多很多,因此,讀寫混合測試項目中的讀寫比例設定為4:1。一般業務很少有完全隨機寫的情況,因此不進行只寫測試。

關于電梯算法

虛擬的客戶機操作系統的IO調度算法使用noop,網上有資料能夠提高IOPS,但是實測效果不明顯,因此最終報告并沒有把它單列出來。

IOPS測試1:不使用對象緩存,只讀測試

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

減少客戶機的測試文件大小為原來的1/8,即19GB,IOPS能夠達到130-140左右,驗證了無其它IO任務的情況下,測試文件越小,IOPS越高(淺藍線)。

恢復客戶機的測試文件為150GB,在多任務(線程數量為10,紫線)或者異步IO(隊列深度為10,黃線)的情況下,IOPS可達230-250。

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

IOPS測試2:使用對象緩存,只讀測試

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

通過多任務(紫線)或者異步IO(黃線)的方式提高并發IO數量,在緩存命中率100%的情況下,IOPS可以提高到40000-50000,基本與相同條件下SSD硬盤的測試結果相當。

注意上圖為對數刻度,且沒有數據值,很難比較數值大小,下圖省略了一半數據塊,但是標上了數據值。

之所以強調緩存命中率,是因為在不完全命中緩存的時候,IOPS下降很厲害,低于80%的話,可能還不如沒有對象緩存。下圖是sheepdog對象緩存命中率與IOPS的關系圖,其中,測試的數據塊大小從512B倍數遞增到512KB,緩存命中率是在測試過程中,根據sheepdog的cache目錄中已有的對象文件數量估算的平均值,IOPS值是讀取數據塊操作在估算的緩存命中率條件下測量的平均值。

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

IOPS測試3:不使用對象緩存,讀寫混合測試

讀寫混合測試的IOPS比只讀測試的結果,總的來說要低一些,而且起伏較大,需要多次測試計算其平均值。

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

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

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

IOPS測試4:使用對象緩存,讀寫混合測試

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

通過多任務或者異步IO的方式提高并發IO數量,在緩存命中率100%的情況下,IOPS可達10000-20000之間。

注意上圖為對數刻度,且沒有數據值,下圖省略了一半數據塊,但是標上了數據值。可以看到,大數據塊讀寫混合的情況下,多任務或異步IO的IOPS可能還不如單任務同步IO


吞吐量測試

測試須知

關于SATA硬盤的吞吐量

普通7200轉SATA硬盤的吞吐量數據,對比一下后面SSD硬盤的吞吐量數據,說明傳統磁盤順序讀寫的能力還是相當出色的。

關于SSD硬盤的吞吐量

大數據塊(512KB以上)順序讀,吞吐量可達250MB/s-270MB/s,順序寫,吞吐量可達200MB/s-210MB/s。

小數據塊(16KB)順序讀,吞吐量也有140MB/s,順序寫大概120MB/s-130MB/s。

無優化sheepdog的吞吐量

在軟硬件不做任何優化的情況下(不綁定雙網卡、不使用virtio、以默認參數啟動sheepdog),sheepdog的吞吐量數據比較低:

  • 順序寫

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

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

以下兩圖,上圖為數據文件512MB的測試數據,下圖為數據文件4GB的測試數據

注,不使用virtio方式啟動sheepdog的命令行參數為:

  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 

吞吐量測試1:不使用對象緩存

從測試結果看,使用virtio方式啟動客戶機有利有弊:

  • 提高了中小數據塊讀寫操作的吞吐量

    • 當數據塊大小在16KB-512KB之間時,順序讀的吞吐量提高10MB/s-30MB/s不等
    • 當數據塊大小在16KB-256KB之間時,順序寫的吞吐量提高5MB/s-8MB/s不等
  • 大大降低了超大數據塊讀操作的吞吐量,至于為何virtio在這種情況下會降低測試的吞吐量,尚不清楚

    • 當數據塊大小達到2MB或者4MB時,順序讀的吞吐量降低80MB/s-90MB/s

以下兩圖,上圖為512MB下的測試數據,下圖為該情況下,與無優化sheepdog讀寫512MB數據文件兩者吞吐量之差。

吞吐量測試2:使用對象緩存

使用了對象緩存,順序讀寫的吞吐量與數據文件大小沒有直接關系,即使數據文件大小超過可用內存。

同時也使用了virtio,并沒有因此降低讀取大數據塊的吞吐量。

由于SSD硬盤的特點,數據塊越大,吞吐量越高,在數據塊大小為4MB的情況下,順序讀的吞吐量可達240MB/s,順序寫也有130MB/s;如果數據塊大小只有16KB,順序讀和順序寫的吞吐量分別只有55MB/s和35MB/s。


總結sheepdog性能

以上為sheepdog集群節點數為6個,且各節點都只掛載一塊SATA硬盤的情況下測得的結果,如果增加集群節點數,并且每個節點都掛滿硬盤,IOPS應該會更高,而吞吐量取決于緩存和網絡帶寬,應該不會有明顯變化。

責任編輯:黃丹 來源: UC技術博客
相關推薦

2013-12-27 10:56:42

分布式對象存儲Sheepdog性能測試

2017-04-14 09:48:25

分布式存儲系統

2018-09-29 14:08:04

存儲系統分布式

2017-10-16 10:24:47

LogDevice存儲系統

2017-07-18 09:51:36

文件存儲系統

2017-10-17 08:33:31

存儲系統分布式

2016-12-06 20:01:00

超融合

2017-12-18 10:47:04

分布式存儲數據

2017-10-12 09:36:54

分布式存儲系統

2017-10-19 08:45:15

存儲系統HBase

2018-11-20 09:19:58

存儲系統雪崩效應

2012-12-28 17:31:06

2018-10-29 12:42:23

Ceph分布式存儲

2010-07-02 10:08:12

BigtableGoogle

2021-08-07 05:00:20

存儲系統

2018-03-13 08:45:08

存儲系統DHT算法

2025-01-26 11:54:39

分布式存儲系統

2019-10-15 10:59:43

分布式存儲系統

2019-05-13 15:20:42

存儲系統算法

2018-05-10 09:34:21

spark存儲系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久久久久亚洲国产800 | 久久久久久99 | 国产一二三区精品视频 | 欧美一区二区在线 | 亚洲天堂影院 | 精品国产视频 | 久久鲁视频 | 国产精品一卡二卡三卡 | 国产美女黄色 | 色视频在线播放 | 亚洲高清视频在线 | 激情a | 一级久久久久久 | 喷潮网站 | 午夜精品久久久久久 | 中文字字幕一区二区三区四区五区 | 91久久精品一区二区二区 | 91影库| 伊人久久综合 | 国产日韩欧美中文 | 中文字幕男人的天堂 | 三级黄视频在线观看 | 黑人精品欧美一区二区蜜桃 | 黄色大片视频 | 91精品国产一区 | 精品亚洲一区二区三区 | 综合在线视频 | 久久91| 日韩久久久久久 | 91精品国产91久久综合桃花 | 欧美一区二区三区四区视频 | 色免费看 | 国产91久久久久久久免费 | 亚洲色图婷婷 | 欧美国产视频 | 日本不卡一区二区三区在线观看 | 婷婷在线免费 | 国产做a爱免费视频 | 亚洲一区 | 91欧美| 日韩三级在线 |