云数据库redis版的性能测试

测试环境和命令:

  • 阿里云VPC环境, 4 x (1核, 2G ECS) 用于运行codis proxy
  • codis proxy后端slot均衡的接2个或4个阿里云redis实例
  • 内网SLB连接4个codis proxy
  • 只单纯测试单条读写, 命令如下:
  • ./redis-benchmark -a <auth-passwd> -h <slb-addr> -c 64 -n 500000 -P 100 -r 1048576 -d 256 -t get,set

测试结果:

Spec. ValueSize(byte) ops(SET) ops(GET)
直连1G 主从版redis 256 15.0w 35.9w
直连1G 主从版redis 1024 9.4w 13.0w
直连1G 主从版redis 2048 5.1w 13.1w
直连2G 主从版redis 256 12.7w 18.1w
直连2G 主从版redis 1024 7.0w 9.0w
直连2G 主从版redis 256 3.8w 6.3w
codis接2x1G 主从版redis 256 12w 8w
codis接4x1G 主从版redis 256 26w 16w
codis接4x1G 主从版redis 1024 8w 4w
codis接4x1G 主从版redis 2048 4w 2w
codis接2x2G 主从版redis 256 15w 12w
直连4G主从高配版redis 256 15.5w 40w
直连4G主从高配版redis 1024 7.8w 20.2w
直连4G主从高配版redis 2048 4.5w 9.5w
直连8G主从版redis 256 13.1w 10.6w
直连8G主从版redis 1024 8.3w 3.5w
直连8G主从版redis 2048 4.7w 1.7w
直连16G主从版redis 256 12.6w 6.0w
直连16G主从版redis 1024 8.3w 3.0w
直连16G主从版redis 2048 5.0w 2.7w
直连16G集群版redis 256 26.9w 23.8w
直连16G集群版redis 1024 9.4w 19.7w
直连16G集群版redis 2048 4.8w 11.6w
直连16G主从高配版redis 256 15.5w 37.3w
直连16G主从高配版redis 1024 8.8w 14.9w
直连16G主从高配版redis 2048 4.7w 8.6w
直连32G集群版redis 256 41.8w 45.3w
直连32G集群版redis 1024 10.1w 28.8w
直连32G集群版redis 2048 5.5w 18.0w
直连128G集群版redis 256 52.3w 45.3w
直连128G集群版redis 1024 10.7w 33.1w
直连128G集群版redis 2048 5.5w 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
上一篇:RMAN 配置归档日志删除策略


下一篇:数据库镜像和日志传送配合完成高可用性以及灾难恢复