看到标题相信大部分同学会对scylladb这个名字比较陌生,先来简单介绍下:ScyllaDB 是用 C++ 重写的 Cassandra,官方称拥有比 Cassandra 多10x 倍的吞吐量,并降低了延迟,是性能优异的 NoSQL 列存储数据库,和hbase一样都源自Google三驾马车之一的Bigtable。如果对Cassandra也比较陌生,有兴趣可以自行补下相关的知识,这里不做展开。来张图谱:
![](https://img.haomeiwen.com/i6030117/b45c0b19ecc3b371.png)
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的存储空间;
![](https://img.haomeiwen.com/i6030117/4778d7253ad5439a.png)
结论:单节点未开启dpdk模式就能达到如此高吞吐量,同时提供低延迟,非常不错,很有深入调研的价值。
网友评论