Skip to content
Visit booth 3171 at Google Cloud Next to see how to unlock real-time decisions at scaleMore info

Benchmarks

The Aerospike C# benchmark tool generates load on a cluster and calculates performance metrics, which are stored in the AerospikeBenchmarks project.

Executing

To execute the Aerospike C# benchmark tool:

  1. Ensure that Aerospike server(s) is up and running.
  2. Open Aerospike.sln in Visual Studio.
  3. Click on AerospikeBenchmarks project.
  4. Edit settings.json.
  5. Set server Host and Port (typically 3000).
  6. Set Initialize to true.
  7. Press F5.

Initializing

The Aerospike benchmark tool seeds the database and measures write performance. This benchmark is used to prepare for the Read/Write benchmark. This calculates and displays the writes per second.

Initialize 100000 records
hosts: [localhost 3000], namespace: test, set: test
threads: 0, transactions: unlimited, throughput: unlimited, debug: False
write policy: socketTimeout: 30000, totalTimeout: 1000, maxRetries: 0, sleepBetweenRetries: 0
bin type: Integer, random values: false
Async max concurrent commands: 40
INFO Add node BB9BF3DDF290C00 172.16.70.227 3000
2023-02-02 16:59:10 write(count=49212 tps=37509 timeouts=0 errors=0)
2023-02-02 16:59:11 write(count=96015 tps=46202 timeouts=0 errors=0)
2023-02-02 16:59:12 write(count=100000 tps=3981 timeouts=0 errors=0)

Read/Write

The Aerospike benchmark tool measures random read/write performance, according to the benchmark configuration variables:

  • Configure load generating threads to increase the number of threads. This increases transaction performance up to an unspecified limit. Every platform has a limit where increasing threads does not increase performance. When you increase threads beyond this limit, the client can freeze and become unresponsive. Thread count is not relevant in asynchronous mode because the C# runtime uses its own thread pool to process asynchronous socket calls. Database commands return immediately after placing the asynchronous command on the queue, so only one thread is usually required to generate load.
  • In asynchronous mode, configure the maximum number of concurrent commands. This indicates the maximum commands to concurrently process at any point in time. If the command queue is full, new commands are blocked until a processing slot becomes available. Increasing max commands usually increases performance up to an unspecified limit. Performance degrades if you exceed this limit.
Read/write using 100000 records
hosts: [localhost 3000], namespace: test, set: test
threads: 0, transactions: unlimited, throughput: unlimited, debug: False
write policy: socketTimeout: 30000, totalTimeout: 1000, maxRetries: 0, sleepBetweenRetries: 0
bin type: Integer, random values: false
Async max concurrent commands: 40
INFO Add node BB9BF3DDF290C00 172.16.70.227 3000
2023-02-02 14:13:15 write(tps=20569 timeouts=0 errors=0) read(tps=20521 timeouts=0 errors=0) total(tps=41090 timeouts=0 errors=0)
2023-02-02 14:13:16 write(tps=24052 timeouts=0 errors=0) read(tps=24370 timeouts=0 errors=0) total(tps=48422 timeouts=0 errors=0)
2023-02-02 14:13:17 write(tps=26651 timeouts=0 errors=0) read(tps=26852 timeouts=0 errors=0) total(tps=53503 timeouts=0 errors=0)
2023-02-02 14:13:18 write(tps=24317 timeouts=0 errors=0) read(tps=24794 timeouts=0 errors=0) total(tps=49111 timeouts=0 errors=0)
2023-02-02 14:13:19 write(tps=26393 timeouts=0 errors=0) read(tps=26191 timeouts=0 errors=0) total(tps=52584 timeouts=0 errors=0)
2023-02-02 14:13:20 write(tps=24269 timeouts=0 errors=0) read(tps=24369 timeouts=0 errors=0) total(tps=48638 timeouts=0 errors=0)
2023-02-02 14:13:21 write(tps=28079 timeouts=0 errors=0) read(tps=28600 timeouts=0 errors=0) total(tps=56679 timeouts=0 errors=0)
2023-02-02 14:13:22 write(tps=30576 timeouts=0 errors=0) read(tps=30888 timeouts=0 errors=0) total(tps=61464 timeouts=0 errors=0)
2023-02-02 14:13:23 write(tps=33131 timeouts=0 errors=0) read(tps=32973 timeouts=0 errors=0) total(tps=66104 timeouts=0 errors=0)
2023-02-02 14:13:24 write(tps=31331 timeouts=0 errors=0) read(tps=31609 timeouts=0 errors=0) total(tps=62940 timeouts=0 errors=0)
2023-02-02 14:13:25 write(tps=31491 timeouts=0 errors=0) read(tps=31687 timeouts=0 errors=0) total(tps=63178 timeouts=0 errors=0)
...
Feedback

Was this page helpful?

What type of feedback are you giving?

What would you like us to know?

+Capture screenshot

Can we reach out to you?