Did you build any secondary indexes? Evicted records for data-in-memory will immediately release memory back to the process (for CE, primary index is also stored in RAM). Total RAM consumed by Aerospike process is about ~1GB for process itself, RAM for PI (64 bytes * number of records on that node, master or replica), RAM for data plus overhead per record which is explained in the linux capacity planning page (calculate RAM for the cluster, divide by number of nodes for each node usage). Then additional RAM for optional secondary indexes. You can see all SIs that you have in AQL…
aql> show indexes
For calculating memory consumed by SIs, you will need cardinality and number of records indexed by each SI. You can get that by (for example, namespace is ns1, index name is my_index1:
$asinfo -v ‘sindex/ns1/my_index1’
In the output, keys= bin cardinality, entries = number of records indexed …
So look at you number of records, replication factor = 2 in your case, size of data in your records and number of bins in your records and calculate your full RAM usage for the cluster, divide by number of nodes (assuming identically sized namespaces on all nodes) and get each node usage.