NoSQLBench 压测工具

 

NoSQLBench是针对NoSQL生态系统的性能测试工具。

 

源码: https://github.com/nosqlbench/nosqlbench/releases

文档: http://docs.nosqlbench.io/

 

1、安装:

wget https://github.com/nosqlbench/nosqlbench/releases/download/nosqlbench-3.12.133/nb

 

2、准备环境: 

./nb run driver=cql workload=cql-keyvalue tags=phase:schema host=192.168.3.111 port=11042 username=cassandra password=cassandra

 

此命令在数据库中创建以下架构:

CREATE KEYSPACE baselines
 WITH replication = {class: SimpleStrategy, replication_factor: 1}
 AND durable_writes = true;

CREATE TABLE baselines.keyvalue (
    key text PRIMARY KEY,
    value text
)

 

run 告诉nosqlbench运行活动。

driver=...用于指定活动类型(驱动程序)。在这种情况下,我们使用cql,它告诉nosqlbench使用DataStax Java驱动程序并对数据库执行CQL语句。

workload=... 用于指定定义活动的工作负载定义文件。

在本示例中,我们使用cql-keyvalue nosqlbench打包的预构建工作负载。

tags=phase:schema告诉nosqlbench运行phase:schema定义为其标签之一的yaml块

在此示例中,这就是cql-keyvalue工作负载的DDL部分host=...告诉nosqlbench如何连接到数据库,只需要一个主机。

 

 

3、加载数据

在测试写入数据库之前,使用stdout查看生成的内容

./nb run driver=stdout workload=cql-keyvalue tags=phase:rampup cycles=10

写入数据库

NoSQLBench确定性地生成数据,因此每次运行时生成的值将相同。

现在我们准备将一些数据写入数据库。继续并从命令行执行以下命令:

./nb run driver=cql workload=cql-keyvalue tags=phase:rampup host=192.168.3.111 port=11042 username=cassandra password=cassandra cycles=100k --progress console:1s

 

请注意此命令与我们用于生成模式的命令之间的区别。

tags=phase:rampup正在运行cql-keyvalue仅具有INSERT语句的yaml块

cycles=100k将总共??运行100,000次操作,在这种情况下,将执行100,000次写入操作。您将需要在实际测试中选择适当数量的循环,以使您的主要测试有意义。

周期参数不仅是数量。它是一个值范围。cycles=n格式是的缩写 cycles=0..n,使周期从零开始。例如,cycles = 5表示活动将使用循环0、1、2、3、4,而不是5。其原因在“活动参数”部分中进行了详细说明。

这些参数将在“ 活动参数 ”部分中详细说明

--progress console:1s 会每1秒将运行进度打印到控制台一次。

 

4、运行测试

./nb run driver=cql workload=cql-keyvalue tags=phase:main host=192.168.3.111 port=11042 username=cassandra password=cassandra cycles=100k cyclerate=5000 threads=50 --progress console:1s

 

tags=phase:main 在活动的Yaml中使用了一个新块,其中包含读取和写入查询。

threads=50是重要的 nosqlbench的默认值是使用单个线程运行。这对于将要运行许多操作的工作负载是不够的,因此使用线程作为增加客户端并发性的方法。

cyclerate=5000用于控制nosqlbench每秒启动的操作。此命令行选项是限制工作负载速率的主要方法,此处我们以5000 ops / sec的速度运行。

 

NoSQLBench 压测工具

上一篇:js中offsetTop、clientTop、scrollTop


下一篇:thinkPHP 接支付宝及时到账接口