RAID是SAS介面, 做成ext4.
server對外走的是10GbE, 合計頻寬20Gb/s = 2.5GB/s, 然後所有的client都使用GbE連接.
(所以應該要20台才會塞滿)
所有主機都用CentOS 6.4.
測試軟體一樣是Bonnie++.
平行測試時, 用pdsh連到client同時啟動Bonnie++, 最後把每一台client上的log收回來加總.
做了四種測試:
1. 大檔案循序寫入 (>1GB)
2. 1MB檔案, 建立1024個
3. 100KB檔案, 建立2048個
4. 10KB檔案, 建立4096個
GlusterFS可以用NFS client或GlusterFS FUSE client掛載.
不過兩種情況, 讀取的cache好像都不會用到, 所以前一篇SSD/NFS讀取測試偷懶的理由就消失了XD
不囉嗦看結果.
client type | 1GB | 1MB | 100K | 10K | |||||
read | write | read | write | read | write | read | write | ||
1 client | GlusterFS | 58.89 | 43.92 | 60.00 | 24.00 | 23.10 | 6.80 | 5.19 | 0.66 |
NFS | 112.84 | 101.90 | 83.00 | 39.00 | 27.40 | 7.60 | 6.20 | 0.82 | |
8 clients | GlusterFS | 498.60 | 443.66 | 347.00 | 248.00 | 252.70 | 36.20 | 78.19 | 9.75 |
NFS | 699.21 | 660.19 | 375.00 | 344.00 | 191.40 | 74.30 | 48.04 | 5.79 | |
16 clients | GlusterFS | 1028.72 | 684.64 | 2083.00 | 191.00 | 276.90 | 46.00 | 183.38 | 21.91 |
NFS | 965.91 | 547.24 | 1244.00 | 311.00 | 828.30 | 133.90 | 46.58 | 3.58 |
其實對單一client的時候, GlusterFS client的速度還蠻慘的...
但是NFS client比較好, 至少接近client的GbE極限.
然後寫入效能比讀取差, 尤其在小檔案的時候, GlusterFS的hashing加上網路overhead, 整個拖垮.
但這並不是GlusterFS當初設計的目標, 大量client的讀寫才是重點.
同時使用8個client的時候, 可以看到GlusterFS client的效能可說是線性成長, 相對來說NFS client的效能增加就沒那麼多.
簡單說, GlusterFS client的scalability比較好.
到16個client就可以看到GlusterFS亮眼的地方了:
1MB讀取的總效能衝到2GB/s! 16個client的GbE頻寬加起來也就差不多2GB/s, 算是很好的結果.
參考之前的測試 (http://mikescchen.blogspot.tw/2013/01/gluster-mount1.html), 可以知道NFS client把hashing交給server做, 而GlusterFS client是自己做hashing.
這在大量client時就顯示出差異了: NFS client使得server的loading加重, 而且增加server間額外的傳輸, GlusterFS則由client分擔hashing跟資料分散的工作, 最終使得GlusterFS client的總效能比NFS client強.
至少就手上的數據來看:
1. client數量少 (<8) 時, NFS client的讀寫效率都比GlusterFS好.
2. client數量多 (>8) 時, GlusterFS client的讀取速度比NFS client好, 但NFS client的寫入速度比GlusterFS好.
3. 要求效能的話, GlusterFS不適合用在大量小檔案的應用場合, 如果檔案有1MB以上的話比較好.
這邊都只有效能面的考量, GlusterFS的replicate以及geo-replication功能, 對於需要HA功能的人來說, 還是值得考慮的一個強項.
No comments:
Post a Comment