Detail
Aerospike server will optimize a few kernel setting at startup.Answer
The following OS parameters are set by Aerospike at Startup:
kernel.shmall = 4294967296 # 4G pages = 16TB kernel.shmmax = 1073741824 # 1GB net.core.rmem_max = 15728640 # (15M) net.core.wmem_max = 8388608 # (8M)The kernel settings for wmem_max and rmem_max need to at least be set to the recommended values.
XDR pipelining will aim to put a lot of records on a single connection, for this purpose the tcp buffers should be increased. If the buffer limit is not configured properly, the remote DC will refuse the client (XDR) connection and close it (instead of sending a server response). Note that buffer limit kernel settings missing at the source DC would simply cause XDR to ship at a slower rate whether a missing configuration of those settings at the destination DC would actually prevent XDR from even establishing connections properly.
To verify, run the following:
sudo sysctl -a | egrep "shm|mem_max"In addition, maximum number of open files for Aerospike process (asd) is set to 100000 using ulimit. To show the per process limit (cat /proc/`pgrep asd`/limits) the asd server must be running when you issue the command. To confirm, run the following:
cat /proc/`pgrep asd`/limits
Notes
- See /etc/init.d/aerospike
- Sysctl parameters are only set when current values are smaller than the minimum required.
- ulimit only affect current shell and its children not system-wide settings.