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

Ubuntu 20上ElasticSearch Docker-Compose退出码137问题求助

Elasticsearch容器退出码137的解决线索

退出码137几乎都是内存不足被系统强制终止导致的,Mac能正常运行是因为Docker内存分配或宿主机内存更充裕,Ubuntu这边可以从以下方向排查:

1. 检查宿主机内存状态

执行命令查看当前内存使用:

free -h

三个Elasticsearch节点每个至少需要1.5GB左右的可用内存(JVM堆+堆外内存开销),如果宿主机总内存低于4GB,跑三节点集群压力极大,建议先减少节点数量或升级宿主机内存。

2. 调整内存限制参数

  • 修改.env文件中的MEM_LIMIT,从1GB(1073741824)提升到至少2GB(2147483648):
    MEM_LIMIT=2147483648
    
  • 同步调整ES_JAVA_OPTS,JVM堆内存不要超过宿主机内存的50%,比如:
    ES_JAVA_OPTS=-Xms1g -Xmx1g
    

3. 简化集群配置(快速验证)

如果暂时没有足够内存,先改成单节点集群测试:

  • 删除docker-compose.yml中的es02、es03服务;
  • 修改es01的环境变量:
    cluster.initial_master_nodes=es01
    discovery.seed_hosts=es01
    

这样单节点启动内存压力会小很多,能快速验证是否是内存问题。

4. 检查Docker内存分配(针对Docker Desktop)

如果用的是Ubuntu版Docker Desktop,打开设置→Resources→Advanced,确保Docker的内存分配至少4GB以上,默认分配可能不足。

5. 查看容器日志确认原因

执行命令查看ES节点的详细日志,确认是否是OOM:

docker-compose logs es01

如果日志里出现Cannot allocate memory或Out of memory相关信息,就坐实了内存不足的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:40:53