| cassandra-stress |
| ====== |
| |
| Description |
| ----------- |
| cassandra-stress is a tool for benchmarking and load testing a Cassandra |
| cluster. cassandra-stress supports testing arbitrary CQL tables and queries |
| to allow users to benchmark their data model. |
| |
| Setup |
| ----- |
| Run `ant` from the Cassandra source directory, then cassandra-stress can be invoked from tools/bin/cassandra-stress. |
| cassandra-stress supports benchmarking any Cassandra cluster of version 2.0+. |
| |
| Usage |
| ----- |
| There are several operation types: |
| |
| * write-only, read-only, and mixed workloads of standard data |
| * write-only and read-only workloads for counter columns |
| * user configured workloads, running custom queries on custom schemas |
| * support for legacy cassandra-stress operations |
| |
| The syntax is `cassandra-stress <command> [options]`. If you want more information on a given command |
| or options, just run `cassandra-stress help <command|option>`. |
| |
| Commands: |
| read: |
| Multiple concurrent reads - the cluster must first be populated by a write test |
| write: |
| Multiple concurrent writes against the cluster |
| mixed: |
| Interleaving of any basic commands, with configurable ratio and distribution - the cluster must first be populated by a write test |
| counter_write: |
| Multiple concurrent updates of counters. |
| counter_read: |
| Multiple concurrent reads of counters. The cluster must first be populated by a counterwrite test. |
| user: |
| Interleaving of user provided queries, with configurable ratio and distribution. |
| See http://www.datastax.com/dev/blog/improved-cassandra-2-1-stress-tool-benchmark-any-schema |
| help: |
| Print help for a command or option |
| print: |
| Inspect the output of a distribution definition |
| legacy: |
| Legacy support mode |
| |
| Primary Options: |
| -pop: |
| Population distribution and intra-partition visit order |
| -insert: |
| Insert specific options relating to various methods for batching and splitting partition updates |
| -col: |
| Column details such as size and count distribution, data generator, names, comparator and if super columns should be used |
| -rate: |
| Thread count, rate limit or automatic mode (default is auto) |
| -mode: |
| Thrift or CQL with options |
| -errors: |
| How to handle errors when encountered during stress |
| -sample: |
| Specify the number of samples to collect for measuring latency |
| -schema: |
| Replication settings, compression, compaction, etc. |
| -node: |
| Nodes to connect to |
| -log: |
| Where to log progress to, and the interval at which to do it |
| -transport: |
| Custom transport factories |
| -port: |
| The port to connect to cassandra nodes on |
| -sendto: |
| Specify a stress server to send this command to |
| -tokenrange: |
| Token range settings |
| |
| |
| Suboptions: |
| Every command and primary option has its own collection of suboptions. These are too numerous to list here. |
| For information on the suboptions for each command or option, please use the help command, |
| `cassandra-stress help <command|option>`. |
| |
| Examples |
| -------- |
| |
| * tools/bin/cassandra-stress write n=1000000 -node 192.168.1.101 # 1M inserts to given host |
| * tools/bin/cassandra-stress read n=10000000 -node 192.168.1.101 -o read # 1M reads |
| * tools/bin/cassandra-stress write -node 192.168.1.101,192.168.1.102 n=10000000 # 10M inserts spread across two nodes |
| * tools/bin/cassandra-stress help -pop # Print help for population distribution option |