Configuration help (evicted objects)


We are experiencing a high number of evicted objects eventhough there should be plenty of free space.

The aerospike dashboard tells that 14.58GB (conf. memory-size 24G) ram are used and 49.40GB (conf. filesize 164G) disk space are used.

Our sets are mostly key:value (int) with a secondary index on that value.

For now we do not have a dedicated SSD device so we are using the file configuration.

We do not have enough RAM to store it all in-memory, so we are looking for a configuration where we make use of both RAM and Disk.

We thought that by the configuration below aerospike would spread the data over both RAM and Disk, but maybe it is not the case?

Is it correct (and maybe our problem here) that the primary index must fit into the available RAM? Are there a better configuration for us to use?

I hope you can help me :slight_smile:

namespace bar {
	replication-factor 2
	memory-size 24G
	default-ttl 0

	storage-engine device {
		file /opt/aerospike/data/bar.dat
		filesize 164G

You are evicting because you have exceeded the default high-water-memory-pct of 60%.

The following article describes the reasoning behind our defaults:

Okay so what I missed, was that the entire index (primary and sub) shall fit into memory.

I thought that, with a memory and SSD setup, when indexes exceeded the memory space, it will start to use SSD in combination? That is not the case. Or is it because we are using a file setup and not a disk setup?

Primary, secondary indexes are always stored in memory. You configure where the data should be stored, in-memory/ssd/file using the namespace configuration. In your case, you have configured bar.dat as disk file for data (164G), and memory for indexes (24G). You should check the actual usage on both data and indexes. If it crosses high water mark, the evictions would kicked in.

okay, thank you for your help :slight_smile: