配置 sysctl.conf
本文介绍如何通过修改机器的 sysctl.conf 配置,以提高 Linux 系统的性能。
如果您是个人用户,可以跳过此步骤;如果您是企业用户,建议配置 sysctl.conf。
更改配置
执行以下命令,打开 /etc/sysctl.conf 配置文件:
sudo vim /etc/sysctl.conf
在 /etc/sysctl.conf 配置文件中添加以下内容:
# for seekdb
## 修改内核异步 I/O 限制
fs.aio-max-nr = 1048576
## 网络优化
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
# 修改进程可以拥有的虚拟内存区域数量
vm.max_map_count = 655360
# 设置 core 文件的文件名格式以及目录
kernel.core_pattern = /data/core-%e-%p-%t
其中,kernel.core_pattern 中的 /data 为 seekdb 的 data 目录。
提示
max_map_count配置不合理的情况下,可能会导致严重的内存泄露。- 至少需要给 core 文件的目录预留和 seekdb 配置的 memory_limit 同等大小的磁盘空间,同时应避免影响到数据目录和日志目录的可用空间。