编译安装Chainlink Node执行make install时yarn返回错误码137如何解决
Chainlink Node源码编译exit code 137报错排查与解决方案
根本原因说明
退出码137本质是进程被Linux系统的OOM(内存不足)杀手强制终止,你提到的50GB是存储空间,和编译需要的*运行内存(RAM)*是完全无关的两个硬件资源,这是当前问题的核心认知误区。
排查步骤
- 执行
free -h命令确认当前容器可用内存,Chrome Duet设备本身物理内存通常仅4-8GB,Linux容器默认分配的内存大概率低于4GB,达不到Chainlink源码编译的最低内存要求。 - 执行
dmesg | grep -i oom命令查看系统内核日志,匹配到yarn/node相关进程的OOM终止记录即可100%确认故障原因。 - 编译过程中另开终端执行
top命令,实时观察yarn进程的内存占用峰值,确认是否超出容器内存上限。
解决办法
- 调整容器内存分配:将容器的可用内存上限调整到至少8GB,条件允许建议分配16GB,额外配置4GB以上Swap分区,可大幅降低OOM概率。
- 限制Node.js内存占用:执行
make install前先运行export NODE_OPTIONS="--max-old-space-size=7168",将Node.js最大堆内存限制在7GB(可根据容器实际分配内存调整,比内存上限低1GB即可),避免进程无限制申请内存。 - 降低编译并发度:拆分
make install执行步骤,先单独运行yarn install --network-concurrency 1降低依赖安装的并发数,再依次执行后续编译步骤,减少并行任务的内存占用总和。 - 若设备物理内存不足无法上调容器分配,可直接使用官方预编译的Chainlink Node二进制包或Docker镜像部署,无需本地编译,运行内存要求可降至2GB以内。
内容的提问来源于stack exchange,提问作者Clint Oka
相关产品推荐
相关产品推荐

