天天看點

雲資料庫redis版的性能測試

測試環境和指令:

阿裡雲vpc環境, 4 x (1核, 2g ecs) 用于運作codis proxy

codis proxy後端slot均衡的接2個或4個阿裡雲redis執行個體

内網slb連接配接4個codis proxy

隻單純測試單條讀寫, 指令如下:

<code>./redis-benchmark -a &lt;auth-passwd&gt; -h &lt;slb-addr&gt; -c 64 -n 500000 -p 100 -r 1048576 -d 256 -t get,set</code>

測試結果:

spec.

valuesize(byte)

ops(set)

ops(get)

直連1g 主從版redis

256

15.0w

35.9w

1024

9.4w

13.0w

2048

5.1w

13.1w

直連2g 主從版redis

12.7w

18.1w

7.0w

9.0w

3.8w

6.3w

codis接2x1g 主從版redis

12w

8w

codis接4x1g 主從版redis

26w

16w

4w

2w

codis接2x2g 主從版redis

15w

直連4g主從高配版redis

15.5w

40w

7.8w

20.2w

4.5w

9.5w

直連8g主從版redis

10.6w

8.3w

3.5w

4.7w

1.7w

直連16g主從版redis

12.6w

6.0w

3.0w

5.0w

2.7w

直連16g叢集版redis

26.9w

23.8w

19.7w

4.8w

11.6w

直連16g主從高配版redis

37.3w

8.8w

14.9w

8.6w

直連32g叢集版redis

41.8w

45.3w

10.1w

28.8w

5.5w

18.0w

直連128g叢集版redis

52.3w

10.7w

33.1w

29.0w

測試結論:

redis主從版執行個體寫入性能明顯優于讀取性能, 猜測讀性能應該是aliyun做的流量限制?

codis的讀寫性能随後端節點數量是線性的, 等同于單個後端redis節點性能 * 節點數目

codis需要額外ecs計算資源部署codis proxy, 不過對于擴充性和寫入性能要求較高的場景, 使用codis叢集的方法比較合适 ( 注意:如果用雲資料庫redis版作為codis後端,是無法水準擴容的 )

16g主從版和8g主從版相比,讀寫性能沒有明顯提升

和主從版相比,16g叢集版寫性能略有提升,比較巧合的是寫的性能基本等于(codis接4 x 1g redis)的性能, 由于不是redis3的用戶端叢集選擇方式, 猜測aliyun叢集版采用了與codis類似的實作?

16g叢集版的讀性能是主從版的4倍,如果不需要消息隊列功能,隻用來做鍵值存儲的話,叢集版更具成本效益

128g叢集版的帶寬規格和節點數規格是32g和16g叢集的一倍,但是并沒有帶來預期的1倍的iops性能提升,特别是對于寫操作大包資料

16g高配版的讀寫性能接近16g叢集版;其标稱的内網帶寬上限是48mbyte, 但實測結果達到了140mbyte(14.9*10000/1024)

回過頭來看以前主從版的資料,結合标稱的内網帶寬上限, 讀性能往往受内網帶寬上限限制, 而寫性能則看起來不受此限制,寫性能通常大于讀性能

重新測試1g主從和2g主從, 1g的性能明顯優于2g