Usage: memsqlctl optimize [flags] Flags: -h, --help help for optimize --memory-percentage INT percentage of memory on each machine to use for MemSQL --no-numa don't change NUMA settings on any MemSQL nodes Global Flags: -c, --config FILE_PATH Path to the memsqctl config file --default-install-dir DIRECTORY_PATH Path to the default install directory -j, --json Print output in JSON format --node-metadata-file FILE_PATH Path to the node metadata file --parallelism int Maximum amount of operations to be run in parallel --ssl-ca FILE_PATH Path to the CA certificate file in PEM format to authenticate the MemSQL server certificate --timeout duration Maximum time for operation to complete (e.g., 30s, 10m, 1.5h) -v, --verbosity count Increase logging verbosity -y, --yes Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default
optimize command will make or recommend the following best practices:
- Sets the
maximum_memoryvalue to either 90% of the total RAM available to a leaf or the total RAM available to the leaf minus 10 GB, whichever is greater
- If there are multiple leaf nodes on the current machine, memory allocation will be split evenly between the leaf nodes:
--memory-percentageis not specified, then memory allocation is 90% of the host machines physical memory which is evenly split between all leaves on the current host
- If you specify
--memory-percentagethat is the memory allocation, and the value is split between all local leaves
- Queries for the NUMA node count on the host machine. If numactl is installed on the host machine,
optimizewill set up NUMA binding based on the number of NUMA nodes on the machine and the number of leaf nodes created.
- Recommends that you install new leaves if the number of leaves is less than what is recommended by the NUMA configuration.
- Sets the default number of partitions on each leaf to be the number of vCPU on the host machine divided by the number of leaf nodes on that host machine. For example, a leaf node on a host machine that has four vCPU would get its default partition number set to
4, while two leaf nodes on a host machine with four vCPU would have the default partition number set to
2on each leaf node.
This command is interactive unless you use either the
--json flags to override interactive behavior.
The following example shows how to use
optimize to increase memory size on a leaf node to align with deployment best practices.
$ sudo memsqlctl optimize Warning: The maximum memory per node, 7184 MB, is less than MemSQL's minimum recommendation of 7372 MB per node. memsqlctl will perform the following actions: · On leaf node with MemSQL ID 7DE9330A9F374C580C9857C851CE3A8380DA2FFC on port 3307 - Set maximum_memory to 7184 MB Would you like to continue? [y/N]: y ✓ Updated MemSQL config file with setting 'maximum_memory = 7184' for node with MemSQL ID 7DE9330A9F374C580C9857C851CE3A8380DA2FFC ✓ Executed 'SET GLOBAL maximum_memory=7184' command on node with MemSQL ID 7DE9330A9F374C580C9857C851CE3A8380DA2FFC