What parameters to tuning Aerospike for increasing performence?

Are there any guide or doc on the field of specified ? I didnt found any ?

Would be helpful to know what aspect you are turning, what hardware/environment, and what you have tried so far.

Here are some links to get started:

  1. https://www.aerospike.com/docs/deploy_guides/aws/tune/
  2. White Paper - Achieving data locality with the Aerospike auto-pin options
  3. https://www.aerospike.com/docs/operations/plan/ssd/ssd_certification.html
  4. https://www.aerospike.com/docs/reference/configuration/

I haven’t try any thing cause I didn’t understand at all… are there anything like tuning the “shared_buffer” in postgres etc…

I’m not sure how to improve the performance of doing nothing, you could save electricity costs by turning the computer off. :laughing:

If there were a setting that would generally improve performance for any use case, it would be the default. Without knowing more about your specific use case, it is impossible to make any suggestions to try. The links I provided above should cover most aspects.

Aerospike Enterprise uses shared-memory to store the primary index allowing it to warm restart. Community uses the standard heap to store the primary index, so the index must be rebuilt on every restart.

If you are using persistence and are looking for caching, see:

HTH, hard to help without any details.

hmmmmm, I’m doing lab about Aerospike, my server Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 4 CPU MHz: 2199.996

Memory: 4GB

Disk: HDD (cloud server so I just know is was HDD or SSD)

My use case was for lab so I want to archive highest tps as possible. I have try tuning some parameter like disable-enable odsync and the tps is likely the same Also try some flush-max-ms with 0-100-500-10000 and the result is likely the same too

Are there any parameter only in enterprise that increase performence ?

How many network queues do you have on your system?

What is your network bandwidth?

Is your Aerospike configuration in memory or index in memory and data on SSD?

bandwidth about 12,5MB/s I use HDD so

namespace test {
        replication-factor 1
        memory-size 10G
        default-ttl 30d # 30 days, use 0 to never expire/evict.
        #storage-engine memory
        storage-engine device {
                file /opt/aerospike/data/test.dat
                filesize 2G
                data-in-memory true # Store data in memory in addition to file.
                flush-max-ms 1000
                #disable-odsync true
                #direct-files true

       }

Don’t do storage-engine memory and storage-engine device in the same namespace. This needs to be an error :/.

hmmm it must be a missing when I copy, I already hash the storage-engine memory lol

I would change the memory-size from 10G to something below 4G which was the memory size you stated above. I would leave at least 1G for the OS.

We don’t recommend using the OS drive and partition to store data. If you are able to configure your instance with a separate drive or partition for Aerospike that would generate better results. If you can add a drive to your configuration then I would partition it into multiple partitions and use the RAW partitions rather than using a file system.

If adding a drive or partition is not possible then, I would add multiple files to your configuration.

             file /opt/aerospike/data/test1.dat
             file /opt/aerospike/data/test2.dat
             file /opt/aerospike/data/test3.dat
             file /opt/aerospike/data/test4.dat
             filesize 250M

With your configuration the data will be in memory and persisted to disk in the background. The mount of data will be limited by the RAM you are using. Because you are running on a system with a low number of hyper-threads, it is usually wise to pin network interrupts to one or two of the CPUs and pin Aerospike to the remaining CPUs.

After some testing, I see that working with the storage-engine memory have the highest tps (compare to HDD, SDD …), but are there anyway to increase the tps of the storage-engine memory ?

Yes, that’s to be expected :slight_smile:. If you are ok with all the data being in memory, but you also want persistence see the data-in-memory config.

If you want to avoid using a lot of RAM for data then I recommend reading Buffering and Caching in Aerospike, specifically the part about read-page-cache.