scylladb 性能对比

看到标题相信大部分同学会对scylladb这个名字比较陌生,先来简单介绍下:ScyllaDB 是用 C++ 重写的 Cassandra,官方称拥有比 Cassandra 多10x 倍的吞吐量,并降低了延迟,是性能优异的 NoSQL 列存储数据库,和hbase一样都源自Google三驾马车之一的Bigtable。如果对Cassandra也比较陌生,有兴趣可以自行补下相关的知识,这里不做展开。来张图谱:

  scylladb的官方提供了和cassandra性能对比的压测结果——http://www.scylladb.com/product/benchmarks/ycsb-cluster-benchmark/

呵呵,试问吹牛逼技术哪家强? 带着疑问和好奇,DBA组也进行了一番自测。 首先需要声明一下:压测的工具同样是YCSB,不过我们测的是 docker中的单节点,硬件系统也和官方有差距,压测的指标和官方的有出入是正常的。

首先看下我们的服务器硬件

  数据库服务器类型:Dell Inc.; PowerEdge R630; vNot Specified (Rack Mount Chassis)

  CPU:20xIntel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz RAM:64 GB

  网络:2000Mb/s

  系统磁盘:1T SSD

操作系统:CentOS Linux release 7.3.1611 (Core)

  内核版本:3.10.0-327.el7.x86_64

  docker容器版本:Docker version 17.05.0-ce, build 89658be

  数据库镜像版本:scylladb 1.7.0-0.20170519.25607ab对应Cassandra 2.2.8

YCSB客户端加载程序硬件

  服务器类型:Dell Inc.; PowerEdge R630; vNot Specified (Rack Mount Chassis)

  CPU:48xIntel(R) Xeon(R) CPU E5-2670 v3 @ 2.30GHz

  RAM:96 GB

  网络:2000Mb/s

  操作系统:CentOS release 6.7 (Final)

  内核版本:2.6.32-573.el6.x86_64

  YCSB版本:ycsb-0.12.0

下面是我们每次迭代的基准测试步骤:

  1.停止集群。

  2.通过删除所有数据文件和提交日志清除数据库状态。

  3.使用命令清除OS缓存: echo 1 > /proc/sys/vm/drop_caches

  4.启动集群。

  5.创建YCSB密钥空间和表用户表。

  6.在用户表中插入1000万行。

  7.运行OPS加载。

 每个步骤对应执行的命令如下:

  1.docker stop scylla1

  2.rm -rf scylla/ && mkdir -p /data/scylla/scylla1/data /data/scylla/scylla1/commitlog

  3.echo 1 > /proc/sys/vm/drop_caches

  4.docker run --rm -p 10.10.10.36:9042:9042 --name scylla1 --volume /data/scylla/scylla1:/var/lib/scylla -d scylladb/scylla

  5.create keyspace ycsb WITH REPLICATION = {'class' : 'SimpleStrategy', 'replicationfactor': 1 }; USE ycsb;

  create table usertable (

  yid varchar primary key, field0 varchar, field1 varchar, field2 varchar, field3 varchar, field4 varchar, field5 varchar, field6 varchar, field7 varchar, field8 varchar, field9 varchar);

  6.bin/ycsb load cassandra-cql -P workloads/workload* -P cassandra.properties -s -threads 100

  7.bin/ycsb run cassandra-cql -P workloads/workload* -P cassandra.properties -s -threads 100 >> ./results/workload*.log

 结果:

  1000w数据量约占7.4G的存储空间;

  结论:单节点未开启dpdk模式就能达到如此高吞吐量,同时提供低延迟,非常不错,很有深入调研的价值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容