现象
部署FastGPT 4.9.6私有版本时,observer服务启动失败。启动日志中出现以下警告与报错:
- 系统参数警告:core file size当前值为0(推荐unlimited)、stack size当前值为8192(推荐unlimited)、vm.maxmapcount当前值262144(推荐655360)、vm.overcommit_memory当前值1(推荐0)。
- 磁盘警告:clog与数据目录使用同一块磁盘/root/ob。
- 最终报错:
[WARN] OBD-2002: Failed to start 127.0.0.1 observer,附带Trace ID 275b4f8a-21a4-11f0-8bd6-0242ac120003,可通过obd display-trace 275b4f8a-21a4-11f0-8bd6-0242ac120003查看详细日志。
可能原因
根据日志信息,启动失败的可能原因包括:
- 系统内核参数未达到运行的推荐配置。
- clog与数据目录挂载至同一块磁盘,不符合存储要求。
- 未配置足够的资源限制参数,如core文件大小、栈大小等。
排查步骤
- 执行命令
obd display-trace 275b4f8a-21a4-11f0-8bd6-0242ac120003,查看启动的详细日志,确认具体报错细节。 - 检查当前系统参数:通过
sysctl vm.max_map_count vm.overcommit_memory查看对应参数值,通过ulimit -c和ulimit -s查看core文件大小与栈大小。 - 查看clog与数据目录的挂载情况,确认是否使用同一块磁盘。
- 核对集群场景配置,确认是否为htap模式。
解决与验证
- 调整系统参数:
- 临时调整vm.maxmapcount为655360:
sudo sysctl -w vm.max_map_count=655360,永久配置需写入/etc/sysctl.conf,添加vm.max_map_count=655360后执行sysctl -p生效。 - 临时调整vm.overcommitmemory为0:`sudo sysctl -w vm.overcommitmemory=0
,永久配置写入/etc/sysctl.conf并执行sysctl -p`。 - 调整core文件大小与栈大小:编辑
/etc/security/limits.conf,添加"* soft core unlimited"、"* hard core unlimited"、"* soft stack unlimited"、"* hard stack unlimited",重启会话后生效。
- 临时调整vm.maxmapcount为655360:
- 调整磁盘挂载:将clog目录与数据目录分别挂载至不同磁盘,避免同盘存储。
- 重启相关服务:执行
obd cluster restart [你的集群名称],查看启动日志是否不再出现相关警告。 - 验证修复效果:执行
obd cluster list,确认127.0.0.1的observer状态为running。