Skip to main content

Configure sysctl.conf

This topic describes how to improve Linux system performance by modifying the sysctl.conf configuration on the machine.

If you are a personal user, you can skip this step. If you are an enterprise user, it is recommended to configure sysctl.conf.

Modify configuration

Run the following command to open the /etc/sysctl.conf configuration file:

sudo vim /etc/sysctl.conf

Add the following content to the /etc/sysctl.conf configuration file:

# for seekdb
## Modify kernel asynchronous I/O limits
fs.aio-max-nr = 1048576

## Network optimization
net.core.somaxconn = 2048
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_slow_start_after_idle=0

vm.swappiness = 0
vm.min_free_kbytes = 2097152
vm.overcommit_memory = 0

fs.file-max = 6573688
fs.pipe-user-pages-soft = 0

# Modify the number of virtual memory areas a process can own
vm.max_map_count = 655360

# Set the filename format and directory for core files
kernel.core_pattern = /data/core-%e-%p-%t

Here, /data in kernel.core_pattern is the data directory of seekdb.

tip
  • If the max_map_count configuration is unreasonable, it may cause serious memory leaks.
  • You need to reserve at least the same amount of disk space as the memory_limit configured for seekdb for the core file directory, and avoid affecting the available space of the data directory and log directory.

Load configuration

After modifying the configuration, run the following command to load the configuration and make it take effect.

sysctl -p

ARM environment deployment recommendations

  • Enable NUMA support in BIOS/UEFI and kernel boot parameters.

  • In ARM and Hygon architecture environments, it is recommended to modify the configuration file /etc/sysctl.conf and set the parameters kernel.numa_balancing, vm.zone_reclaim_mode, and vm.swappiness to 0, as follows:

    [root@xxx /]
    $vi /etc/sysctl.conf
    ## Disable NUMA balancing to avoid performance jitter during balancing
    kernel.numa_balancing = 0
    ## Disable memory reclaim and reallocation functions
    vm.zone_reclaim_mode = 0
    vm.swappiness = 0

    Apply the values in the sysctl.conf configuration file:

    [root@xxx /]
    $sysctl -p