Hi,
Given:
- Aerospike Community Edition 4.5.1.5
- one node
- namespace configuration
namespace test { replication-factor 1 memory-size 24G default-ttl 30d storage-engine device { device /dev/sdd scheduler-mode noop write-block-size 128K } }
- asbenchmark 4.3.1, that has been
- installed on the separate dedicated server
The strange issue is that when I’m running the benchmark with the following parameters
asbenchmark \
--async \
--bins 1 \
--hosts 192.168.0.5 \
--port 3000 \
--namespace test \
--set testset \
--keys 10 \
--keyType String \
--keylength 24 \
-netty \
-nettyEpoll \
-objectSpec B:1024 \
--eventLoops 4 \
--workload RR,100,0 \
--connPoolsPerNode 100 \
--asyncMaxCommands 1000 \
--replica any
… I get the following output
2019-06-03 19:15:18.122 write(tps=0 timeouts=0 errors=0) read(tps=45007 timeouts=0 errors=0) total(tps=45007 timeouts=0 errors=0)
2019-06-03 19:15:19.122 write(tps=0 timeouts=0 errors=0) read(tps=45266 timeouts=0 errors=0) total(tps=45266 timeouts=0 errors=0)
2019-06-03 19:15:20.123 write(tps=0 timeouts=0 errors=0) read(tps=47231 timeouts=0 errors=0) total(tps=47231 timeouts=0 errors=0)
2019-06-03 19:15:21.123 write(tps=0 timeouts=0 errors=0) read(tps=45281 timeouts=0 errors=0) total(tps=45281 timeouts=0 errors=0)
If I change the number of keys to reasonable large value, e.g. 1000000, like the following
asbenchmark \
--async \
--bins 1 \
--hosts 192.168.0.5 \
--port 3000 \
--namespace test \
--set testset \
--keys 1000000 \
--keyType String \
--keylength 24 \
-netty \
-nettyEpoll \
-objectSpec B:1024 \
--eventLoops 4 \
--workload RR,100,0 \
--connPoolsPerNode 100 \
--asyncMaxCommands 1000 \
--replica any
… I get the following output
2019-06-03 19:17:33.231 write(tps=0 timeouts=0 errors=0) read(tps=421654 timeouts=0 errors=0) total(tps=421654 timeouts=0 errors=0)
2019-06-03 19:17:34.231 write(tps=0 timeouts=0 errors=0) read(tps=445527 timeouts=0 errors=0) total(tps=445527 timeouts=0 errors=0)
2019-06-03 19:17:35.232 write(tps=0 timeouts=0 errors=0) read(tps=438792 timeouts=0 errors=0) total(tps=438792 timeouts=0 errors=0)
2019-06-03 19:17:36.232 write(tps=0 timeouts=0 errors=0) read(tps=438171 timeouts=0 errors=0) total(tps=438171 timeouts=0 errors=0)
So why increasing the amount of keys in benchmark leads to an order of magnitude better results?
P.S. I experience exactly the same behaviour for storage-engine=memory
as well.