The quasardb benchmarking tool (qdb_comparison) enables you to evaluate the performance of your quasardb cluster. To do so, it runs a script on the specified cluster and measures the time taken to process the commands as accurately as the operating systems allows it.
- Identifiying hardware limits in a quasardb cluster (network bandwidth, server processing power, etc.)
- Determining the maximum throughput of your cluster
- Tuning
The tool can be used to benchmark on servers supporting the following protocols (in alphabetical order):
- aerospike (only on Linux)
- local
- memcached
- quasardb
- redis
The local protocol creates a virtual “local” server to test the local machine memory bandwidth. This can help identify memory-related bottlenecks or abnormal allocator behavior.
Each benchmark is a script that runs operations in the given order.
For example to put a one (1) kilobyte entry once and retrieve it ten (10) times, the script is:
tests
{
single_put_multiple_get
{
count 10
size 1024
}
}
If you want to add another test, for example, if you want to put a one (1) byte entry and retrieving it one thousand (1,000) times, the script becomes:
tests
{
single_put_multiple_get
{
count 10
size 1024
}
single_put_multiple_get
{
count 1000
size 1
}
}
Each command requires the count and size parameters.
The accepted commands are:
- single_put_multiple_get: adds one entry of size bytes and retrives it count times
- multiple_put: puts count entry of size bytes and then deletes them all
- multiple_put_remain: puts count entry of size bytes, but does not delete them
- multiple_put_get_delete: adds an entry of size bytes, retrieves it and deletes it count times
- multiple_put_get_update_delete: adds an entry of size bytes, retrieves it, updates it and deletes it count times
Displays basic usage information.
To display the online help, type:
qdb_comparison --help
Specifies the address and port of the quasardb daemon to which the comparison tool must connect. The daemon must conform to the protocol specified by the protocol parameter.
If the daemon listens on localhost and on the port 5009:
qdb_httpd --daemon-port=localhost:5009
Specifies the protocol to use.
Run the test on a memcached compatible server:
qdb_comparison --protocol=memcached
Specifies the number of threads qdb_comparison should use to run the test. Each thread will run the test script, duplicating its operations. This function is helpful to simulate multiple clients from a single test instance.
Run the test two times in two separate threads:
qdb_comparison --threads=2
The test script to run.
Runs the tests written in stress.cfg:
qdb_comparison -f stress.cfg
Specifies the path for the CSV output.
Output the results to results.csv:
qdb_comparison --output-file=results.csv