修复启动Doris BE报错:Please set vm.max_map_count to be 2000000 under root using ‘sysctl -w vm.max_map_count=2000000’.
启动 Doris BE 时出现的系统检查报错提示,明确指向 Linux 系统参数配置问题。报错内容如下:
Please set vm.max_map_count to be 2000000 under root using 'sysctl -w vm.max_map_count=2000000'.
这意味着当前系统的 vm.max_map_count
参数值过小。Doris BE 运行时需要大量内存映射操作(尤其在高并发或列存储文件较多的场景下),该参数至少需设置为 2000000,否则可能因内存映射区域分配失败导致启动异常。
一、错误原因解析
vm.max_map_count
是 Linux 内核参数,用于限制单个进程可创建的内存映射区域数量(如 mmap 调用)。不同系统默认值存在差异:
- Ubuntu 通常默认值为 65530
- CentOS 常见默认值为 65536
这些默认值远无法满足 Doris BE 的运行需求。
二、临时解决方案(快速生效但重启失效)
通过命令行直接修改运行时参数:
sudo sysctl -w vm.max_map_count=2000000
此操作会立即调整内存参数,但系统重启后配置会丢失,适用于急需启动服务的场景。
三、永久性解决方案(推荐方案)
通过修改配置文件实现重启后持续生效,操作步骤如下:
1. 编辑系统配置文件
使用文本编辑器打开 /etc/sysctl.conf
:
sudo vim /etc/sysctl.conf
在文件末尾添加参数配置:
vm.max_map_count=2000000
保存并退出编辑器。
2. 应用配置使修改生效
执行命令加载新配置:
sudo sysctl -p
若未提示错误,说明配置已成功应用。
四、验证配置是否生效
可通过两种方式检查参数是否修改成功:
1. 使用 sysctl 命令查询
sysctl vm.max_map_count
正常输出应为:
vm.max_map_count = 2000000
2. 查看系统参数文件
cat /proc/sys/vm/max_map_count
若输出值为 2000000,则表示配置已生效。
完成以上操作后,重新启动 Doris BE 服务即可正常运行。编辑分享