Changing the Memory Limit for Each Node After Installation

In some cases, you may wish to change the memory limit for each node after installing SingleStore.

The process requires updating the maximum_memory global variable in the memsql.cnf file on each node (aggregator and each leaf) and then restarting the cluster. It is recommended to have symmetrical leaves (same amount of RAM/CPU etc. on each leaf).

1. Get the node IDs from the MEMSQL_ID column by executing this command:

sdb-admin list-nodes

2. Suppose you want to update the master node to have maximum_memory of 4106 KB and the leaf node to have 8108 KB. Execute these commands with the corresponding MEMSQL_IDs:

sdb-admin update-config --key maximum_memory --value 4106 --memsql-id <MEMSQL_ID>
sdb-admin update-config --key maximum_memory --value 8108 --memsql-id <MEMSQL_ID>

3. Restart the cluster by executing this command:

sdb-admin restart-node --all

4. Check that the nodes have the amount of memory you want by querying mv_nodes:

USE information_schema 

SELECT * FROM mv_nodes;

5. To see your total used cluster memory capacity execute this command:

SHOW STATUS EXTENDED LIKE 'used_cluster_capacity';

Note

Folders containing the .cnf files for the nodes are typically under: /var/lib/memsql/. To find out which subfolder corresponds to what node (the folder names are GUIDs), you can look at the port number in the memsql.cnf file in the folder named with a GUID.

Use Cases

This process can be used for a number of purposes, including to:

  • change memory used by SingleStore to stay under the licensed memory limit.

  • increase memory limits to use newly-installed memory.

  • leave memory for other software running on the machines.

Additional Information

Refer memsql.cnf for changing the .cnf file.