Cassandra压力测试结果评估



我已经使用cassandra压力工具来评估我的cassandra集群很长一段时间了。

我的问题是,我无法理解为我的特定用例生成的结果。

我的模式看起来像这样:

CREATE TABLE Table_test(
      ID uuid,
      Time timestamp,
      Value double,
      Date timestamp,
      PRIMARY KEY ((ID,Date), Time)
) WITH COMPACT STORAGE;

我已经在一个自定义的yaml文件中解析了这些信息,并使用了参数n=10000threads=100和其他默认选项(cl=onemode=native cql3等)。Cassandra集群是一个3节点的CentOS虚拟机设置。

自定义yaml文件的一些细节如下:

insert:
    partitions: fixed(100)
    select: fixed(1)/2
    batchtype: UNLOGGED
columnspecs:
    -name: Time
     size: fixed(1000)
    -name: ID
     size: uniform(1..100)
    -name: Date
     size: uniform(1..10)
    -name: Value
     size: uniform(-100..100)

到目前为止,我的观察结果如下:

  1. 对于n=10000和时间:fixed(1000),插入的行数为1000万。(10000*1000=10000000)
  2. 行键/分区的数量为10000(i.e n),其中一次取100个分区(这意味着100*1000=100000个键值对),其中50000个键值对一次被处理。(这是因为select: fixed(1)/2~50%)

输出消息也证实了这一点:

生成具有[100..100]个分区和[50000..50000]行(分区中总共[100000..100000]行)的批

对于与上述配置相同的连续运行,我得到的结果如下:

Run Total_ops   Op_rate Partition_rate  Row_Rate   Time 
1     56           19     1885           943246     3.0
2     46           46     4648          2325498     1.0
3     27           30     2982          1489870     0.9
4     59           19     1932           966034     3.1
5     100          17     1730           865182     5.8

现在我需要了解的内容如下:

  1. 这些指标中的哪一个是吞吐量,即每秒插入的记录数?是Row_rate、Op_rate还是Partition_rate?如果是Row_rate,我可以在这里安全地得出结论,我每秒可以插入近100万条记录吗?对这种情况下Op_rate和Partition_rate的含义有什么想法吗
  2. 为什么每次运行的Total_ops变化如此之大?线程的数量与这种变化有什么关系吗?关于我的卡桑德拉设置的稳定性,我能在这里得出什么结论
  3. 如何在此处确定每个线程的批量大小?在我的例子中,批量大小是50000吗

提前谢谢。

Row Rate是已插入数据库的CQL行数。对于您的表,CQL行是一个类似于(ID uuid, Time timestamp, Value double, Date timestamp)的元组。

PartitionRate是C*必须构建的分区数。分区是在Cassandra中保存和排序数据的数据结构,具有相同分区键的数据最终位于同一节点上。此分区速率等于在时间窗口中插入的分区密钥中的唯一值的数目。对于您的表,这将是(ID,Date) 的唯一值

Op Rate是必须执行的实际CQL操作数。根据您的设置,它正在运行未标记的批次来插入数据。每个插入包含大约100个分区(ID和日期的唯一组合),这就是OP速率*100~=分区速率的原因

总OP应包括所有操作,读取和写入。因此,如果您有任何读取操作,这些操作也将包括在内。

我建议更改您的批量大小以匹配您的工作负载,或者根据您的实际数据库使用情况将其保持在1。这应该提供一个更现实的场景。同样重要的是,要真正了解系统的功能,运行的时间要比总共100次操作长得多。当数据集的大小增加到超过机器中RAM的数量时,一些最大的困难就会出现。

最新更新