You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

普通用户运行etcd报内存预留错误,root账户正常求解决

问题分析与解决方案

这个错误是Go语言运行时初始化内存分配器时,无法预留足够虚拟内存用于页摘要(page summary)导致的。普通用户账户的虚拟内存资源限制远低于root账户,因此触发了该问题。

解决步骤

1. 确认普通用户的资源限制

执行以下命令查看当前普通用户的内存限制:

ulimit -a

重点关注virtual memory (kbytes, -v)项,普通用户的限制会显示为1048576(对应1GB),而root账户通常是unlimited。

2. 调整普通用户的虚拟内存限制

临时调整(当前会话有效)

在普通用户终端执行:

ulimit -v unlimited

或者设置一个足够大的数值(比如4GB):

ulimit -v 4194304

永久调整(系统重启后依然有效)

编辑/etc/security/limits.conf文件,添加以下内容(将your_username替换为实际的普通用户名):

your_username soft as unlimited
your_username hard as unlimited

保存后退出,重新登录普通用户账户即可生效。

3. 优化etcd的内存配置

在受限环境中,建议给etcd和Go运行时设置合理的内存上限:

  • 设置Go运行时内存限制:
    export GOMEMLIMIT=4G
    
  • 启动etcd时添加内存相关参数:
    etcd --quota-backend-bytes=2147483648 --max-request-bytes=1048576
    
    其中--quota-backend-bytes限制后端存储的最大大小(示例为2GB),--max-request-bytes限制单个请求的大小(示例为1MB),可根据实际需求调整。

4. 验证修复效果

重新用普通用户账户启动etcd,检查是否再出现failed to reserve page summary memory错误。

内容的提问来源于stack exchange,提问作者Sreejith K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 14:15:32