修复启动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 服务即可正常运行。编辑分享


关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注