Stress Testing Cassandra
The cassandra-stress tool is a Java-based stress testing utility for basic benchmarking and load testing a Cassandra cluster. It comes with Apache Cassandra binary package.
Cassandra stress help on user command
$ tools/bin/cassandra-stress help user
Usage: user profile=? ops(?) [clustering=DIST(?)] [err<?] [n>?] [n<?] [no-warmup] [truncate=?] [cl=?]
OR
Usage: user profile=? n=? ops(?) [clustering=DIST(?)] [no-warmup] [truncate=?] [cl=?]
OR
Usage: user profile=? duration=? ops(?) [clustering=DIST(?)] [no-warmup] [truncate=?] [cl=?]
profile=? Specify the path to a yaml cql3 profile
ops(null): Specify the ratios for inserts/queries to perform; e.g. ops(insert=2,<query1>=1) will perform 2 inserts for each query1
null
[clustering=DIST(?)]: Distribution clustering runs of operations of the same kind
EXP(min..max) An exponential distribution over the range [min..max]
EXTREME(min..max,shape) An extreme value (Weibull) distribution over the range [min..max]
QEXTREME(min..max,shape,quantas) An extreme value, split into quantas, within which the chance of selection is uniform
GAUSSIAN(min..max,stdvrng) A gaussian/normal distribution, where mean=(min+max)/2, and stdev is (mean-min)/stdvrng
GAUSSIAN(min..max,mean,stdev) A gaussian/normal distribution, with explicitly defined mean and stdev
UNIFORM(min..max) A uniform distribution over the range [min, max]
FIXED(val) A fixed distribution, always returning the same value
SEQ(min..max) A fixed sequence, returning values in the range min to max sequentially (starting based on seed), wrapping if necessary.
Preceding the name with ~ will invert the distribution, e.g. ~exp(1..10) will yield 10 most, instead of least, often
Aliases: extr, qextr, gauss, normal, norm, weibull
err<? (default=0.02) Run until the standard error of the mean is below this fraction
n>? (default=30) Run at least this many iterations before accepting uncertainty convergence
n<? (default=200) Run at most this many iterations before accepting uncertainty convergence
no-warmup Do not warmup the process
truncate=? (default=never) Truncate the table: never, before performing any work, or before each iteration
cl=? (default=LOCAL_ONE) Consistency level to use
n=? Number of operations to perform
duration=? Time to run in (in seconds, minutes or hours)
Running stress on custom tables.
Create a new keyspace named: perftesting.
Create a file stress.yaml inside a directory of your choice with the following content
table: users
keyspace: perftesting
table_definition:
CREATE TABLE users (
username text,
first_name text,
last_name text,
password text,
email text,
startdate date,
last_access timeuuid,
description text,
PRIMARY KEY(username)
);
extra_definitions:
- CREATE MATERIALIZED VIEW perftesting.users_by_first_name AS SELECT * FROM perftesting.users WHERE first_name IS NOT NULL and username IS NOT NULL PRIMARY KEY (first_name, username);
- CREATE MATERIALIZED VIEW perftesting.users_by_first_name2 AS SELECT * FROM perftesting.users WHERE first_name IS NOT NULL and username IS NOT NULL PRIMARY KEY (first_name, username);
- CREATE MATERIALIZED VIEW perftesting.users_by_first_name3 AS SELECT * FROM perftesting.users WHERE first_name IS NOT NULL and username IS NOT NULL PRIMARY KEY (first_name, username);
columnspec:
- name: username
size: uniform(10..30)
- name: first_name
size: fixed(16)
- name: last_name
size: uniform(1..32)
- name: password
size: fixed(80) # sha-512
- name: email
size: uniform(16..50)
- name: startdate
cluster: uniform(20...40)
- name: description
size: gaussian(100...500)
insert:
partitions: fixed(10) # Insert data into 10 partitions each time
queries:
read1:
cql: select * from users where username = ?
fields: samerow # samerow or multirow (select arguments from the same row, or randomly from all rows in the partition)
$ tools/bin/cassandra-stress user profile=stress.yaml n=20000 ops\(insert=3,read1=1\) truncate=once no-warmup cl=ONE
Note:
The user option is required for the profile and opt parameters.
The value for the profile parameter is the path and filename of the .yaml file.
In this example, -n specifies the number of batches that run.
The values supplied for ops specifies which operations run and how many of each. These values direct the command to insert rows into the database and run the read1 query.
How many times? Each insert or query counts as one batch, and the values in ops determine how many of each type are run. Since the total number of batches is 1,000,000, and ops says to run three inserts for each query, the result will be 750,000 inserts and 250,000 of the read1 query.
Use escaping backslashes when specifying the ops value.
Results (note: below numbers are based on a prod grade server with default settings):
$ tools/bin/cassandra-stress user profile=cqlstress.yaml n=20000 ops\(insert=3,read1=1\) no-warmup cl=ONE
WARN 14:16:06 You listed localhost/0:0:0:0:0:0:0:1:9042 in your contact points, but it wasn't found in the control host's system.peers at startup
Connected to cluster: Test Cluster, max pending requests per connection 133, max connections per host 8
Datatacenter: datacenter1; Host: localhost/127.0.0.1; Rack: rack1
Created schema. Sleeping 1s for propagation.
Created extra schema. Sleeping 1s for propagation.
Sleeping 2s...
Running with 4 threadCount
Running [insert, read1] with 4 threads for 20000 iteration
type total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb
Generating batches with [10..10] partitions and [10..10] rows (of [10..10] total rows in the partitions)
insert, 575, 575, 5750, 5750, 6.2, 4.9, 12.1, 21.8, 68.9, 70.1, 1.0, 0.00000, 0, 0, 0, 0, 0, 0
read1, 156, 156, 15, 15, 2.4, 1.8, 5.4, 8.0, 20.7, 20.7, 1.0, 0.00000, 0, 0, 0, 0, 0, 0
total, 731, 731, 5765, 5765, 5.4, 4.3, 11.6, 20.7, 68.9, 70.1, 1.0, 0.00000, 0, 0, 0, 0, 0, 0
insert, 691, 93, 928, 928, 2.9, 2.5, 5.1, 8.1, 10.7, 10.7, 2.2, 0.51920, 0, 0, 0, 0, 0, 0
read1, 182, 21, 14, 14, 0.7, 0.6, 1.3, 1.4, 1.4, 1.4, 2.2, 0.51920, 0, 0, 0, 0, 0, 0
total, 873, 114, 942, 942, 2.5, 2.4, 4.9, 8.1, 10.7, 10.7, 2.2, 0.51920, 0, 0, 0, 0, 0, 0
Results:
Op rate : 388 op/s [insert: 307 op/s, read1: 81 op/s]
Partition rate : 3,086 pk/s [insert: 3,071 pk/s, read1: 15 pk/s]
Row rate : 3,086 row/s [insert: 3,071 row/s, read1: 15 row/s]
Latency mean : 4.9 ms [insert: 5.7 ms, read1: 2.1 ms]
Latency median : 3.8 ms [insert: 4.5 ms, read1: 1.6 ms]
Latency 95th percentile : 11.1 ms [insert: 11.7 ms, read1: 5.1 ms]
Latency 99th percentile : 19.5 ms [insert: 20.1 ms, read1: 8.0 ms]
Latency 99.9th percentile : 68.9 ms [insert: 68.9 ms, read1: 20.7 ms]
Latency max : 70.1 ms [insert: 70.1 ms, read1: 20.7 ms]
Total partitions : 6,943 [insert: 6,910, read1: 33]
Total errors : 0 [insert: 0, read1: 0]
Total GC count : 0
Total GC memory : 0.000 KiB
Total GC time : 0.0 seconds
Avg GC time : NaN ms
StdDev GC time : 0.0 ms
Total operation time : 00:00:02
Sleeping for 15s
Running with 8 threadCount
Running [insert, read1] with 8 threads for 20000 iteration
type total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb
insert, 122, 113, 1128, 1128, 4.4, 3.8, 9.1, 10.9, 13.7, 13.7, 1.1, 0.00000, 0, 0, 0, 0, 0, 0
read1, 11, 10, 7, 7, 1.3, 0.8, 2.5, 3.6, 3.6, 3.6, 1.1, 0.00000, 0, 0, 0, 0, 0, 0
total, 133, 123, 1136, 1136, 4.1, 3.8, 8.9, 10.9, 13.7, 13.7, 1.1, 0.00000, 0, 0, 0, 0, 0, 0
Results:
Op rate : 123 op/s [insert: 113 op/s, read1: 10 op/s]
Partition rate : 1,136 pk/s [insert: 1,128 pk/s, read1: 7 pk/s]
Row rate : 1,136 row/s [insert: 1,128 row/s, read1: 7 row/s]
Latency mean : 4.1 ms [insert: 4.4 ms, read1: 1.3 ms]
Latency median : 3.8 ms [insert: 3.8 ms, read1: 0.8 ms]
Latency 95th percentile : 8.9 ms [insert: 9.1 ms, read1: 2.5 ms]
Latency 99th percentile : 10.9 ms [insert: 10.9 ms, read1: 3.6 ms]
Latency 99.9th percentile : 13.7 ms [insert: 13.7 ms, read1: 3.6 ms]
Latency max : 13.7 ms [insert: 13.7 ms, read1: 3.6 ms]
Total partitions : 1,224 [insert: 1,216, read1: 8]
Total errors : 0 [insert: 0, read1: 0]
Total GC count : 0
Total GC memory : 0.000 KiB
Total GC time : 0.0 seconds
Avg GC time : NaN ms
StdDev GC time : 0.0 ms
Total operation time : 00:00:01
Improvement over 4 threadCount: -68%
Sleeping for 15s
Running with 16 threadCount
Running [insert, read1] with 16 threads for 20000 iteration
type total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb
insert, 1693, 1694, 16944, 16944, 8.8, 7.5, 13.5, 30.1, 96.2, 98.0, 1.0, 0.00000, 0, 1, 81, 81, 0, 594
read1, 713, 713, 634, 634, 1.3, 0.9, 2.9, 6.0, 12.5, 90.0, 1.0, 0.00000, 0, 1, 81, 81, 0, 594
total, 2406, 2406, 17565, 17565, 6.6, 6.6, 12.2, 28.3, 96.2, 98.0, 1.0, 0.00000, 0, 1, 81, 81, 0, 594
Results:
Op rate : 2,406 op/s [insert: 1,694 op/s, read1: 713 op/s]
Partition rate : 17,565 pk/s [insert: 16,944 pk/s, read1: 634 pk/s]
Row rate : 17,565 row/s [insert: 16,944 row/s, read1: 634 row/s]
Latency mean : 6.6 ms [insert: 8.8 ms, read1: 1.3 ms]
Latency median : 6.6 ms [insert: 7.5 ms, read1: 0.9 ms]
Latency 95th percentile : 12.2 ms [insert: 13.5 ms, read1: 2.9 ms]
Latency 99th percentile : 28.3 ms [insert: 30.1 ms, read1: 6.0 ms]
Latency 99.9th percentile : 96.2 ms [insert: 96.2 ms, read1: 12.5 ms]
Latency max : 98.0 ms [insert: 98.0 ms, read1: 90.0 ms]
Total partitions : 17,564 [insert: 16,930, read1: 634]
Total errors : 0 [insert: 0, read1: 0]
Total GC count : 1
Total GC memory : 594.332 MiB
Total GC time : 0.1 seconds
Avg GC time : 81.0 ms
StdDev GC time : 0.0 ms
Total operation time : 00:00:00
Improvement over 8 threadCount: 1857%
Sleeping for 15s
Running with 24 threadCount
Running [insert, read1] with 24 threads for 20000 iteration
type total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb
insert, 1936, 2173, 21725, 21725, 10.6, 8.6, 15.1, 78.8, 81.1, 84.2, 0.9, 0.00000, 0, 2, 69, 118, 10, 1199
read1, 646, 729, 697, 697, 1.0, 0.8, 2.3, 3.9, 5.5, 13.3, 0.9, 0.00000, 0, 2, 69, 118, 10, 1199
total, 2582, 2898, 22417, 22417, 8.2, 8.0, 13.6, 65.6, 80.8, 84.2, 0.9, 0.00000, 0, 2, 69, 118, 10, 1199
Results:
Op rate : 2,898 op/s [insert: 2,173 op/s, read1: 729 op/s]
Partition rate : 22,417 pk/s [insert: 21,725 pk/s, read1: 697 pk/s]
Row rate : 22,417 row/s [insert: 21,725 row/s, read1: 697 row/s]
Latency mean : 8.2 ms [insert: 10.6 ms, read1: 1.0 ms]
Latency median : 8.0 ms [insert: 8.6 ms, read1: 0.8 ms]
Latency 95th percentile : 13.6 ms [insert: 15.1 ms, read1: 2.3 ms]
Latency 99th percentile : 65.6 ms [insert: 78.8 ms, read1: 3.9 ms]
Latency 99.9th percentile : 80.8 ms [insert: 81.1 ms, read1: 5.5 ms]
Latency max : 84.2 ms [insert: 84.2 ms, read1: 13.3 ms]
Total partitions : 19,971 [insert: 19,354, read1: 617]
Total errors : 0 [insert: 0, read1: 0]
Total GC count : 2
Total GC memory : 1.171 GiB
Total GC time : 0.1 seconds
Avg GC time : 59.0 ms
StdDev GC time : 10.0 ms
Total operation time : 00:00:00
Improvement over 16 threadCount: 21%
Sleeping for 15s
Running with 36 threadCount
Running [insert, read1] with 36 threads for 20000 iteration
type total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb
insert, 1938, 2770, 27696, 27696, 12.5, 11.2, 17.5, 59.4, 65.4, 67.2, 0.7, 0.00000, 0, 1, 47, 47, 0, 597
read1, 622, 905, 864, 864, 1.1, 0.8, 2.8, 4.3, 6.1, 15.9, 0.7, 0.00000, 0, 1, 47, 47, 0, 597
total, 2560, 3659, 28545, 28545, 9.7, 10.4, 16.0, 58.6, 64.1, 67.2, 0.7, 0.00000, 0, 1, 47, 47, 0, 597
Results:
Op rate : 3,659 op/s [insert: 2,770 op/s, read1: 905 op/s]
Partition rate : 28,545 pk/s [insert: 27,696 pk/s, read1: 864 pk/s]
Row rate : 28,545 row/s [insert: 27,696 row/s, read1: 864 row/s]
Latency mean : 9.7 ms [insert: 12.5 ms, read1: 1.1 ms]
Latency median : 10.4 ms [insert: 11.2 ms, read1: 0.8 ms]
Latency 95th percentile : 16.0 ms [insert: 17.5 ms, read1: 2.8 ms]
Latency 99th percentile : 58.6 ms [insert: 59.4 ms, read1: 4.3 ms]
Latency 99.9th percentile : 64.1 ms [insert: 65.4 ms, read1: 6.1 ms]
Latency max : 67.2 ms [insert: 67.2 ms, read1: 15.9 ms]
Total partitions : 19,972 [insert: 19,378, read1: 594]
Total errors : 0 [insert: 0, read1: 0]
Total GC count : 1
Total GC memory : 596.619 MiB
Total GC time : 0.0 seconds
Avg GC time : 47.0 ms
StdDev GC time : 0.0 ms
Total operation time : 00:00:00
Improvement over 24 threadCount: 27%
Sleeping for 15s
Running with 54 threadCount
Running [insert, read1] with 54 threads for 20000 iteration
type total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb
insert, 1935, 2708, 27078, 27078, 19.0, 17.5, 42.8, 62.9, 66.2, 70.5, 0.7, 0.00000, 0, 1, 44, 44, 0, 600
read1, 654, 931, 906, 906, 1.7, 1.0, 4.9, 8.2, 36.4, 36.8, 0.7, 0.00000, 0, 1, 44, 44, 0, 600
total, 2589, 3624, 27970, 27970, 14.6, 15.8, 24.4, 62.1, 66.2, 70.5, 0.7, 0.00000, 0, 1, 44, 44, 0, 600
Results:
Op rate : 3,624 op/s [insert: 2,708 op/s, read1: 931 op/s]
Partition rate : 27,970 pk/s [insert: 27,078 pk/s, read1: 906 pk/s]
Row rate : 27,970 row/s [insert: 27,078 row/s, read1: 906 row/s]
Latency mean : 14.6 ms [insert: 19.0 ms, read1: 1.7 ms]
Latency median : 15.8 ms [insert: 17.5 ms, read1: 1.0 ms]
Latency 95th percentile : 24.4 ms [insert: 42.8 ms, read1: 4.9 ms]
Latency 99th percentile : 62.1 ms [insert: 62.9 ms, read1: 8.2 ms]
Latency 99.9th percentile : 66.2 ms [insert: 66.2 ms, read1: 36.4 ms]
Latency max : 70.5 ms [insert: 70.5 ms, read1: 36.8 ms]
Total partitions : 19,983 [insert: 19,346, read1: 637]
Total errors : 0 [insert: 0, read1: 0]
Total GC count : 1
Total GC memory : 600.086 MiB
Total GC time : 0.0 seconds
Avg GC time : 44.0 ms
StdDev GC time : 0.0 ms
Total operation time : 00:00:00
Improvement over 36 threadCount: -1%
Sleeping for 15s
Running with 81 threadCount
Running [insert, read1] with 81 threads for 20000 iteration
type total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb
insert, 1915, 3068, 30675, 30675, 24.8, 21.6, 50.0, 66.6, 68.6, 68.8, 0.6, 0.00000, 0, 1, 39, 39, 0, 601
read1, 855, 1412, 1387, 1387, 1.8, 1.0, 4.6, 12.5, 48.3, 49.8, 0.6, 0.00000, 0, 1, 39, 39, 0, 601
total, 2770, 4438, 32021, 32021, 17.7, 20.0, 41.3, 66.2, 68.5, 68.8, 0.6, 0.00000, 0, 1, 39, 39, 0, 601
Results:
Op rate : 4,438 op/s [insert: 3,068 op/s, read1: 1,412 op/s]
Partition rate : 32,021 pk/s [insert: 30,675 pk/s, read1: 1,387 pk/s]
Row rate : 32,021 row/s [insert: 30,675 row/s, read1: 1,387 row/s]
Latency mean : 17.7 ms [insert: 24.8 ms, read1: 1.8 ms]
Latency median : 20.0 ms [insert: 21.6 ms, read1: 1.0 ms]
Latency 95th percentile : 41.3 ms [insert: 50.0 ms, read1: 4.6 ms]
Latency 99th percentile : 66.2 ms [insert: 66.6 ms, read1: 12.5 ms]
Latency 99.9th percentile : 68.5 ms [insert: 68.6 ms, read1: 48.3 ms]
Latency max : 68.8 ms [insert: 68.8 ms, read1: 49.8 ms]
Total partitions : 19,985 [insert: 19,145, read1: 840]
Total errors : 0 [insert: 0, read1: 0]
Total GC count : 1
Total GC memory : 600.583 MiB
Total GC time : 0.0 seconds
Avg GC time : 39.0 ms
StdDev GC time : 0.0 ms
Total operation time : 00:00:00
Improvement over 54 threadCount: 23%
Sleeping for 15s
Running with 121 threadCount
Running [insert, read1] with 121 threads for 20000 iteration
type total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb
insert, 1916, 3101, 31007, 31007, 36.0, 32.2, 98.3, 107.2, 122.6, 134.5, 0.6, 0.00000, 0, 1, 38, 38, 0, 597
read1, 840, 1407, 1382, 1382, 2.5, 1.2, 7.8, 24.4, 44.2, 57.9, 0.6, 0.00000, 0, 1, 38, 38, 0, 597
total, 2756, 4460, 32342, 32342, 25.8, 29.2, 57.9, 105.6, 116.7, 134.5, 0.6, 0.00000, 0, 1, 38, 38, 0, 597
Results:
Op rate : 4,460 op/s [insert: 3,101 op/s, read1: 1,407 op/s]
Partition rate : 32,342 pk/s [insert: 31,007 pk/s, read1: 1,382 pk/s]
Row rate : 32,342 row/s [insert: 31,007 row/s, read1: 1,382 row/s]
Latency mean : 25.8 ms [insert: 36.0 ms, read1: 2.5 ms]
Latency median : 29.2 ms [insert: 32.2 ms, read1: 1.2 ms]
Latency 95th percentile : 57.9 ms [insert: 98.3 ms, read1: 7.8 ms]
Latency 99th percentile : 105.6 ms [insert: 107.2 ms, read1: 24.4 ms]
Latency 99.9th percentile : 116.7 ms [insert: 122.6 ms, read1: 44.2 ms]
Latency max : 134.5 ms [insert: 134.5 ms, read1: 57.9 ms]
Total partitions : 19,985 [insert: 19,160, read1: 825]
Total errors : 0 [insert: 0, read1: 0]
Total GC count : 1
Total GC memory : 596.996 MiB
Total GC time : 0.0 seconds
Avg GC time : 38.0 ms
StdDev GC time : 0.0 ms
Total operation time : 00:00:00
Improvement over 81 threadCount: 1%
Sleeping for 15s
Running with 181 threadCount
Running [insert, read1] with 181 threads for 20000 iteration
type total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb
insert, 1925, 3131, 31312, 31312, 50.1, 44.8, 91.9, 101.4, 104.3, 107.2, 0.6, 0.00000, 0, 1, 43, 43, 0, 602
read1, 750, 1282, 1265, 1265, 9.5, 9.8, 16.2, 64.9, 72.5, 76.0, 0.6, 0.00000, 0, 1, 43, 43, 0, 602
total, 2675, 4351, 32515, 32515, 38.7, 42.7, 90.8, 100.7, 103.8, 107.2, 0.6, 0.00000, 0, 1, 43, 43, 0, 602
Results:
Op rate : 4,351 op/s [insert: 3,131 op/s, read1: 1,282 op/s]
Partition rate : 32,515 pk/s [insert: 31,312 pk/s, read1: 1,265 pk/s]
Row rate : 32,515 row/s [insert: 31,312 row/s, read1: 1,265 row/s]
Latency mean : 38.7 ms [insert: 50.1 ms, read1: 9.5 ms]
Latency median : 42.7 ms [insert: 44.8 ms, read1: 9.8 ms]
Latency 95th percentile : 90.8 ms [insert: 91.9 ms, read1: 16.2 ms]
Latency 99th percentile : 100.7 ms [insert: 101.4 ms, read1: 64.9 ms]
Latency 99.9th percentile : 103.8 ms [insert: 104.3 ms, read1: 72.5 ms]
Latency max : 107.2 ms [insert: 107.2 ms, read1: 76.0 ms]
Total partitions : 19,990 [insert: 19,250, read1: 740]
Total errors : 0 [insert: 0, read1: 0]
Total GC count : 1
Total GC memory : 601.937 MiB
Total GC time : 0.0 seconds
Avg GC time : 43.0 ms
StdDev GC time : 0.0 ms
Total operation time : 00:00:00
Improvement over 121 threadCount: -2%
Sleeping for 15s
Running with 271 threadCount
Running [insert, read1] with 271 threads for 20000 iteration
type total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb
insert, 1920, 3228, 32278, 32278, 65.0, 56.8, 127.2, 134.5, 139.3, 149.2, 0.6, 0.00000, 0, 1, 48, 48, 0, 595
read1, 803, 1407, 1382, 1382, 24.2, 23.1, 64.4, 101.8, 102.5, 102.5, 0.6, 0.00000, 0, 1, 48, 48, 0, 595
total, 2723, 4578, 33604, 33604, 53.0, 53.6, 123.8, 133.4, 138.9, 149.2, 0.6, 0.00000, 0, 1, 48, 48, 0, 595
Results:
Op rate : 4,578 op/s [insert: 3,228 op/s, read1: 1,407 op/s]
Partition rate : 33,604 pk/s [insert: 32,278 pk/s, read1: 1,382 pk/s]
Row rate : 33,604 row/s [insert: 32,278 row/s, read1: 1,382 row/s]
Latency mean : 53.0 ms [insert: 65.0 ms, read1: 24.2 ms]
Latency median : 53.6 ms [insert: 56.8 ms, read1: 23.1 ms]
Latency 95th percentile : 123.8 ms [insert: 127.2 ms, read1: 64.4 ms]
Latency 99th percentile : 133.4 ms [insert: 134.5 ms, read1: 101.8 ms]
Latency 99.9th percentile : 138.9 ms [insert: 139.3 ms, read1: 102.5 ms]
Latency max : 149.2 ms [insert: 149.2 ms, read1: 102.5 ms]
Total partitions : 19,986 [insert: 19,197, read1: 789]
Total errors : 0 [insert: 0, read1: 0]
Total GC count : 1
Total GC memory : 594.666 MiB
Total GC time : 0.0 seconds
Avg GC time : 48.0 ms
StdDev GC time : 0.0 ms
Total operation time : 00:00:00
Improvement over 181 threadCount: 5%
Sleeping for 15s
Running with 406 threadCount
Running [insert, read1] with 406 threads for 20000 iteration
type total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb
insert, 1931, 2524, 25227, 25227, 111.1, 81.5, 309.1, 325.6, 335.3, 341.8, 0.8, 0.00000, 0, 2, 57, 110, 2, 1201
read1, 696, 1051, 1045, 1045, 46.8, 29.3, 227.7, 291.2, 303.0, 303.8, 0.7, 0.00000, 0, 2, 57, 110, 2, 1201
total, 2627, 3433, 26132, 26132, 94.1, 74.8, 302.3, 325.1, 332.9, 341.8, 0.8, 0.00000, 0, 2, 57, 110, 2, 1201
Results:
Op rate : 3,433 op/s [insert: 2,524 op/s, read1: 1,051 op/s]
Partition rate : 26,132 pk/s [insert: 25,227 pk/s, read1: 1,045 pk/s]
Row rate : 26,132 row/s [insert: 25,227 row/s, read1: 1,045 row/s]
Latency mean : 94.1 ms [insert: 111.1 ms, read1: 46.8 ms]
Latency median : 74.8 ms [insert: 81.5 ms, read1: 29.3 ms]
Latency 95th percentile : 302.3 ms [insert: 309.1 ms, read1: 227.7 ms]
Latency 99th percentile : 325.1 ms [insert: 325.6 ms, read1: 291.2 ms]
Latency 99.9th percentile : 332.9 ms [insert: 335.3 ms, read1: 303.0 ms]
Latency max : 341.8 ms [insert: 341.8 ms, read1: 303.8 ms]
Total partitions : 19,996 [insert: 19,304, read1: 692]
Total errors : 0 [insert: 0, read1: 0]
Total GC count : 2
Total GC memory : 1.173 GiB
Total GC time : 0.1 seconds
Avg GC time : 55.0 ms
StdDev GC time : 2.0 ms
Total operation time : 00:00:00
Improvement over 271 threadCount: -23%
Sleeping for 15s
id, type total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb
4 threadCount, insert, 691, 307, 3071, 3071, 5.7, 4.5, 11.7, 20.1, 68.9, 70.1, 2.2, 0.51920, 0, 0, 0, 0, 0, 0
4 threadCount, read1, 182, 81, 15, 15, 2.1, 1.6, 5.1, 8.0, 20.7, 20.7, 2.2, 0.51920, 0, 0, 0, 0, 0, 0
4 threadCount, total, 873, 388, 3086, 3086, 4.9, 3.8, 11.1, 19.5, 68.9, 70.1, 2.2, 0.51920, 0, 0, 0, 0, 0, 0
8 threadCount, insert, 122, 113, 1128, 1128, 4.4, 3.8, 9.1, 10.9, 13.7, 13.7, 1.1, 0.00000, 0, 0, 0, 0, 0, 0
8 threadCount, read1, 11, 10, 7, 7, 1.3, 0.8, 2.5, 3.6, 3.6, 3.6, 1.1, 0.00000, 0, 0, 0, 0, 0, 0
8 threadCount, total, 133, 123, 1136, 1136, 4.1, 3.8, 8.9, 10.9, 13.7, 13.7, 1.1, 0.00000, 0, 0, 0, 0, 0, 0
16 threadCount, insert, 1693, 1694, 16944, 16944, 8.8, 7.5, 13.5, 30.1, 96.2, 98.0, 1.0, 0.00000, 0, 1, 81, 81, 0, 594
16 threadCount, read1, 713, 713, 634, 634, 1.3, 0.9, 2.9, 6.0, 12.5, 90.0, 1.0, 0.00000, 0, 1, 81, 81, 0, 594
16 threadCount, total, 2406, 2406, 17565, 17565, 6.6, 6.6, 12.2, 28.3, 96.2, 98.0, 1.0, 0.00000, 0, 1, 81, 81, 0, 594
24 threadCount, insert, 1936, 2173, 21725, 21725, 10.6, 8.6, 15.1, 78.8, 81.1, 84.2, 0.9, 0.00000, 0, 2, 69, 118, 10, 1199
24 threadCount, read1, 646, 729, 697, 697, 1.0, 0.8, 2.3, 3.9, 5.5, 13.3, 0.9, 0.00000, 0, 2, 69, 118, 10, 1199
24 threadCount, total, 2582, 2898, 22417, 22417, 8.2, 8.0, 13.6, 65.6, 80.8, 84.2, 0.9, 0.00000, 0, 2, 69, 118, 10, 1199
36 threadCount, insert, 1938, 2770, 27696, 27696, 12.5, 11.2, 17.5, 59.4, 65.4, 67.2, 0.7, 0.00000, 0, 1, 47, 47, 0, 597
36 threadCount, read1, 622, 905, 864, 864, 1.1, 0.8, 2.8, 4.3, 6.1, 15.9, 0.7, 0.00000, 0, 1, 47, 47, 0, 597
36 threadCount, total, 2560, 3659, 28545, 28545, 9.7, 10.4, 16.0, 58.6, 64.1, 67.2, 0.7, 0.00000, 0, 1, 47, 47, 0, 597
54 threadCount, insert, 1935, 2708, 27078, 27078, 19.0, 17.5, 42.8, 62.9, 66.2, 70.5, 0.7, 0.00000, 0, 1, 44, 44, 0, 600
54 threadCount, read1, 654, 931, 906, 906, 1.7, 1.0, 4.9, 8.2, 36.4, 36.8, 0.7, 0.00000, 0, 1, 44, 44, 0, 600
54 threadCount, total, 2589, 3624, 27970, 27970, 14.6, 15.8, 24.4, 62.1, 66.2, 70.5, 0.7, 0.00000, 0, 1, 44, 44, 0, 600
81 threadCount, insert, 1915, 3068, 30675, 30675, 24.8, 21.6, 50.0, 66.6, 68.6, 68.8, 0.6, 0.00000, 0, 1, 39, 39, 0, 601
81 threadCount, read1, 855, 1412, 1387, 1387, 1.8, 1.0, 4.6, 12.5, 48.3, 49.8, 0.6, 0.00000, 0, 1, 39, 39, 0, 601
81 threadCount, total, 2770, 4438, 32021, 32021, 17.7, 20.0, 41.3, 66.2, 68.5, 68.8, 0.6, 0.00000, 0, 1, 39, 39, 0, 601
121 threadCount, insert, 1916, 3101, 31007, 31007, 36.0, 32.2, 98.3, 107.2, 122.6, 134.5, 0.6, 0.00000, 0, 1, 38, 38, 0, 597
121 threadCount, read1, 840, 1407, 1382, 1382, 2.5, 1.2, 7.8, 24.4, 44.2, 57.9, 0.6, 0.00000, 0, 1, 38, 38, 0, 597
121 threadCount, total, 2756, 4460, 32342, 32342, 25.8, 29.2, 57.9, 105.6, 116.7, 134.5, 0.6, 0.00000, 0, 1, 38, 38, 0, 597
181 threadCount, insert, 1925, 3131, 31312, 31312, 50.1, 44.8, 91.9, 101.4, 104.3, 107.2, 0.6, 0.00000, 0, 1, 43, 43, 0, 602
181 threadCount, read1, 750, 1282, 1265, 1265, 9.5, 9.8, 16.2, 64.9, 72.5, 76.0, 0.6, 0.00000, 0, 1, 43, 43, 0, 602
181 threadCount, total, 2675, 4351, 32515, 32515, 38.7, 42.7, 90.8, 100.7, 103.8, 107.2, 0.6, 0.00000, 0, 1, 43, 43, 0, 602
271 threadCount, insert, 1920, 3228, 32278, 32278, 65.0, 56.8, 127.2, 134.5, 139.3, 149.2, 0.6, 0.00000, 0, 1, 48, 48, 0, 595
271 threadCount, read1, 803, 1407, 1382, 1382, 24.2, 23.1, 64.4, 101.8, 102.5, 102.5, 0.6, 0.00000, 0, 1, 48, 48, 0, 595
271 threadCount, total, 2723, 4578, 33604, 33604, 53.0, 53.6, 123.8, 133.4, 138.9, 149.2, 0.6, 0.00000, 0, 1, 48, 48, 0, 595
406 threadCount, insert, 1931, 2524, 25227, 25227, 111.1, 81.5, 309.1, 325.6, 335.3, 341.8, 0.8, 0.00000, 0, 2, 57, 110, 2, 1201
406 threadCount, read1, 696, 1051, 1045, 1045, 46.8, 29.3, 227.7, 291.2, 303.0, 303.8, 0.7, 0.00000, 0, 2, 57, 110, 2, 1201
406 threadCount, total, 2627, 3433, 26132, 26132, 94.1, 74.8, 302.3, 325.1, 332.9, 341.8, 0.8, 0.00000, 0, 2, 57, 110, 2, 1201
Node Configuration:
Produce graph:
$ tools/bin/cassandra-stress user profile=stress.yaml n=20000 ops\(insert=3,read1=1\) truncate=once no-warmup cl=ONE graph file=test.html title=test revision=test1
How to run cassandra stress from a remote machine
$ tools/bin/cassandra-stress help -node
Usage: -node [datacenter=?] [whitelist] [file=?] []
datacenter=? Datacenter used for DCAwareRoundRobinLoadPolicy
whitelist Limit communications to the provided nodes
file=? Node file (one per line)
(default=localhost) comma delimited list of nodes
Example:
$ tools/bin/cassandra-stress user profile=stress.yaml n=20000 ops\(insert=3,read1=1\) truncate=once no-warmup cl=ONE -node 127.0.0.1
Compare performance under a fixed load
$ tools/bin/cassandra-stress help -rate
Usage: -rate threads=? [throttle=?] [fixed=?]
OR
Usage: -rate [threads>=?] [threads<=?] [auto]
threads=? run this many clients concurrently
throttle=? (default=0/s) throttle operations per second across all clients to a maximum rate (or less) with no implied schedule
fixed=? (default=0/s) expect fixed rate of operations per second across all clients with implied schedule
threads>=? (default=4) run at least this many clients concurrently
threads<=? (default=1000) run at most this many clients concurrently
auto stop increasing threads once throughput saturates
Reference:
http://docs.datastax.com/en/cassandra/3.0/cassandra/tools/toolsCStress.html
https://www.youtube.com/watch?v=it4yqHXu4TE
http://psy-lob-saw.blogspot.in/2016/07/fixing-co-in-cstress.html