Usage - aerospike/aerospike-benchmark GitHub Wiki
This page is a complete list of all flags that the benchmark binary accepts.
To see this message in terminal, run <benchmark_executable> --help
after building.
--help
Prints this message
-h --hosts <host1>[:<tlsname1>][:<port1>],... # Default: localhost
Server seed hostnames or IP addresses.
The tlsname is only used when connecting with a secure TLS enabled server.
If the port is not specified, the default port is used. Examples:
host1
host1:3000,host2:3000
192.168.1.10:cert1:3000,192.168.1.20:cert2:3000
-p --port <port> # Default: 3000
Server default port.
-U --user <user name> # Default: empty
User name for Aerospike servers that require authentication.
-P[<password>] # Default: empty
User's password for Aerospike servers that require authentication.
If -P is set, the actual password if optional. If the password is not given,
the user will be prompted on the command line.
If the password is given, it must be provided directly after -P with no
intervening space (ie. -Pmypass).
-n --namespace <ns> # Default: test
Aerospike namespace.
-s --set <set name> # Default: testset
Aerospike set name.
--workloadStages <path/to/workload_stages.yml>
Accepts a path to a workload stages yml file, which should contain a list of
workload stages to run through.
Each stage must include:
duration: in seconds
workload: Workload type
Optionally each stage should include:
tps : max possible with 0 (default), or specified transactions per second
object-spec: Object spec for the stage. Otherwise, inherits from the previous
stage, with the first stage inheriting the global object spec.
key-start: Key start, otherwise inheriting from the global context
key-end: Key end, otherwise inheriting from the global context
read-bins: Which bins to read if the workload includes reads
pause: max number of seconds to pause before the stage starts. Waits a random
number of seconds between 1 and the pause.
async: when true/yes, uses asynchronous commands for this stage. Default is false
random: when true/yes, randomly generates new objects for each write. Default is false
batch-size: specifies the batch size of reads for this stage. Default is 1
-K --startKey <start> # Default: 0
Set the starting value of the working set of keys. If using an
'insert' workload, the start_value indicates the first value to
write. Otherwise, the start_value indicates the smallest value in
the working set of keys.
-k --keys <count> # Default: 1000000
Set the number of keys the client is dealing with. If using an
'insert' workload (detailed below), the client will write this
number of keys, starting from value = startKey. Otherwise, the
client will read and update randomly across the values between
startKey and startKey + num_keys. startKey can be set using
'-K' or '--startKey'.
-o --objectSpec describes a comma-separated bin specification
Scalar bins:
I<bytes> | B<size> | S<length> | D # Default: I
I) Generate an integer bin or value in a specific byte range
(treat I as I4)
I1 for 0 - 255
I2 for 256 - 65535
I3 for 65536 - 2**24-1
I4 for 2**24 - 2**32-1
I5 for 2**32 - 2**40-1
I6 for 2**40 - 2**48-1
I7 for 2**48 - 2**56-1
I8 for 2**56 - 2**64-1
B) Generate a bytes bin or value with an bytearray of random bytes
B12 - generates a bytearray of 12 random bytes
S) Generate a string bin or value made of space-separated a-z{1,9} words
S16 - a string with a 16 character length. ex: "uir a mskd poiur"
D) Generate a Double bin or value (8 byte)
Collection bins:
[] - a list
[3*I2] - ex: [312, 1651, 756]
[I2, S4, I2] - ex: [892, "sf8h", 8712]
[2*S12, 3*I1] - ex: ["bf90wek1a0cv", "pl3k2dkfi0sn", 18, 109, 212]
[3*[I1, I1]] - ex: [[1,11],[123,221],[78,241]]
{} - a map
{5*S1:I1} - ex {"a":1, "b":2, "d":4, "z":26, "e":5}
{2*S1:[3*I:1]} - ex {"a": [1,2,3], "b": [6,7,8]}
Example:
-o I2,S12,[3*I1] => b1: 478; b2: "a09dfwu3ji2r"; b3: [12, 45, 209])
--readBins # Default: all bins
Specifies which bins from the object-spec to load from the database on read
transactions. Must be given as a comma-separated list of bin numbers,
starting from 1 (i.e. "1,3,4,6".
--writeBins # Default: all bins
Specifies which bins from the object-spec to generate and store in the
database on write transactions. Must be given as a comma-separated list
of bin numbers, starting from 1 (i.e. "1,3,4,6".
-R --random # Default: static fixed bin values
Use dynamically generated random bin values instead of default static fixed bin values.
-t --duration # Default: 10s (for random read/write workload)
Specifies the minimum amount of time the benchmark will run for.
-w --workload I,<percent> | RU,<read percent> | DB # Default: RU,50
Desired workload.
-w I,60 : Linear 'insert' workload initializing 60% of the keys.
-w RU,80 : Random read/update workload with 80% reads and 20% writes.
-w DB : Bin delete workload.
-z --threads <count> # Default: 16
Load generating thread count.
-g --throughput <tps> # Default: 0
Throttle transactions per second to a maximum value.
If tps is zero, do not throttle throughput.
Used in read/write mode only.
--batchSize <size> # Default: 0
Enable batch mode with number of records to process in each batch get call.
Batch mode is valid only for RU (read update) workloads. Batch mode is disabled by default.
--compress
Enable binary data compression through the aerospike client.
Internally, this sets the compression policy to true.
--compressionRatio <ratio> # Default: 1
Sets the desired compression ratio for binary data.
Causes the benchmark tool to generate data which will roughly compress by this proportion.
--socketTimeout <ms> # Default: 30000
Read/Write socket timeout in milliseconds.
--readSocketTimeout <ms> # Default: 30000
Read socket timeout in milliseconds.
--writeSocketTimeout <ms> # Default: 30000
Write socket timeout in milliseconds.
-T --timeout <ms> # Default: 0
Read/Write total timeout in milliseconds.
--readTimeout <ms> # Default: 0
Read total timeout in milliseconds.
--writeTimeout <ms> # Default: 0
Write total timeout in milliseconds.
--maxRetries <number> # Default: 1
Maximum number of retries before aborting the current transaction.
-d --debug # Default: debug mode is false.
Run benchmarks in debug mode.
-L --latency
Enables the periodic HDR histogram summary of latency data.
--percentiles <p1>[,<p2>[,<p3>...]] # Default: "50,90,99,99.9,99.99".
Specifies the latency percentiles to display in the periodic latency
histogram.
--outputFile # Default: stdout
Specifies an output file to write periodic latency data, which enables
the tracking of transaction latencies in microseconds in a histogram.
Currently uses the default layout.
The file is opened in append mode.
--outputPeriod # Default: 1s
Specifies the period between successive snapshots of the periodic
latency histogram.
--hdrHist=<path/to/output> # Default: off
Enables the cumulative HDR histogram and specifies the directory to
dump the cumulative HDR histogram summary.
-S --shared # Default: false
Use shared memory cluster tending.
-C --replica {master,any,sequence} # Default: master
Which replica to use for reads.
-N --readModeAP {one,all} # Default: one
Read mode for AP (availability) namespaces.
-B --readModeSC {session,linearize,allowReplica,allowUnavailable} # Default: session
Read mode for SC (strong consistency) namespaces.
-M --commitLevel {all,master} # Default: all
Write commit guarantee level.
-Y --connPoolsPerNode <num> # Default: 1
Number of connection pools per node.
-D --durableDelete # Default: durableDelete mode is false.
All transactions will set the durable-delete flag which indicates
to the server that if the transaction results in a delete, to generate
a tombstone for the deleted record.
-a --async # Default: synchronous mode
Enable asynchronous mode.
-c --asyncMaxCommands <command count> # Default: 50
Maximum number of concurrent asynchronous commands that are active at any point
in time.
-W --eventLoops <thread count> # Default: 1
Number of event loops (or selector threads) when running in asynchronous mode.
--tlsEnable # Default: TLS disabled
Enable TLS.
--tlsCaFile <path>
Set the TLS certificate authority file.
--tlsCaPath <path>
Set the TLS certificate authority directory.
--tlsProtocols <protocols>
Set the TLS protocol selection criteria.
--tlsCipherSuite <suite>
Set the TLS cipher selection criteria.
--tlsCrlCheck
Enable CRL checking for leaf certs.
--tlsCrlCheckAll
Enable CRL checking for all certs.
--tlsCertBlackList <path>
Path to a certificate blacklist file.
--tlsLogSessionInfo
Log TLS connected session info.
--tlsKeyFile <path>
Set the TLS client key file for mutual authentication.
--tlsCertFile <path>
Set the TLS client certificate chain file for mutual authentication.
--tlsLoginOnly
Use TLS for node login only.
--auth {INTERNAL,EXTERNAL,EXTERNAL_SECURE} # Default: INTERNAL
Set authentication mode when user/password is defined.
-u --usage # Default: usage not printed.
Display program usage.