2 核 2G 的阿里云 ECS 能跑 OpenClaw 吗?能,但有点折腾
2 核 2G 的阿里云 ECS 能跑 OpenClaw 吗?能,但有点折腾
最近想在云服务器上跑个 AI Agent,手边刚好有一台阿里云 2 核 2G 的 ECS 闲置。OpenClaw 这个项目看着挺有意思——支持飞书、微信、钉钉多平台接入,能远程遥控 Agent 干活。问题是:2G 内存够不够?
先说结论:够用,但得做点优化。飞书插件没问题,微信插件会吃掉大量内存,需要动点手脚。
本文提纲
- 环境准备与一键安装
- 连接飞书:一次成功
- 微信插件:内存爆了
- 解决方案一:增大 Node.js 堆内存
- 解决方案二:增加 Swap 空间
- 两个方法一起上
- 吐槽:GitHub 在阿里云上慢到怀疑人生
环境准备与安装
机器配置:
| 项目 | 规格 |
|---|---|
| CPU | 2 核 |
| 内存 | 2 GB |
| 系统 | Ubuntu 22.04 |
| 带宽 | 1 Mbps(别问) |
阿里云现在提供了 OpenClaw 的一键部署方案,在云市场搜索「OpenClaw」或「小龙虾」就行,省去了手动装 Node.js、配环境的麻烦。一键购买后,系统会自动装好 OpenClaw 和所有依赖。
如果你想手动装,也不复杂:
npm install -g openclaw
openclaw init
按提示填好 API Key 和基本配置,Gateway 就能跑起来了:
openclaw gateway --port 18789
看到那只龙虾 logo 出来,基本就成功了。
我这次图省事直接用了一键部署,省了不少折腾环境的时间。
连接飞书:一次成功
飞书插件的配置比较简单。在 OpenClaw 配置文件里添加飞书应用凭证,设置好事件订阅地址,重启 Gateway 就行了。
飞书插件加载后的日志:
[plugins] feishu_doc: Registered feishu_doc, feishu_app_scopes
[plugins] feishu_chat: Registered feishu_chat tool
[plugins] feishu_wiki: Registered feishu_wiki tool
[plugins] feishu_drive: Registered feishu_drive tool
[plugins] feishu_bitable: Registered bitable tools
飞书这边响应很快,发消息过去基本秒回。2 核 2G 跑飞书插件毫无压力,内存占用大概在 300-400MB 左右,完全可控。
这时候我以为事情就这么简单——直到我装了微信插件。
微信插件:内存爆了
微信插件 openclaw-weixin 放在 ~/.openclaw/extensions/ 目录下。装上之后重启 Gateway,看起来一切正常:
[plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load:
openclaw-weixin (/root/.openclaw/extensions/openclaw-weixin/index.ts).
插件被发现了,开始加载。然后过了大概 20 秒——
<--- Last few GCs --->
[3347:0x70a8000] 22751 ms: Mark-Compact 831.6 (852.3) -> 829.5 (853.3) MB,
pooled: 0 MB, 1011.10 / 0.00 ms
(average mu = 0.098, current mu = 0.009) allocation failure;
scavenge might not succeed
<--- JS stacktrace --->
FATAL ERROR: Ineffective mark-compacts near heap limit
Allocation failed - JavaScript heap out of memory
好家伙,直接 OOM 了。Node.js 进程吃了 800 多 MB 内存,触发了堆内存限制,然后 V8 引擎直接自杀。
2G 内存的服务器,系统本身吃掉一部分,再加上 OpenClaw 和飞书插件,微信插件一上来就撑爆了。
解决方案一:增大 Node.js 堆内存
Node.js 默认的堆内存上限大概是 1.5GB 左右(取决于版本和系统)。我们可以通过 NODE_OPTIONS 环境变量来提高这个限制:
echo 'export NODE_OPTIONS="--max-old-space-size=4096"' >> ~/.bashrc
source ~/.bashrc
这行配置告诉 V8 引擎:"你可以用最多 4GB 的堆内存"。当然 2G 物理内存是装不下 4GB 的,但配合下面的 Swap,就能让系统在内存紧张时把不活跃的数据换到磁盘上。
修改后重启服务:
systemctl --user restart openclaw-gateway.service
解决方案二:增加 Swap 空间
2G 物理内存确实捉襟见肘。Linux 的 Swap 机制可以把磁盘空间当内存用,虽然慢,但至少不会 OOM。
创建一个 2GB 的 Swap 文件:
# 创建 swap 文件
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 开机自动挂载
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
验证 Swap 是否生效:
free -h
输出大概是这样的:
total used free shared buff/cache available
Mem: 1.9Gi 1.2Gi 200Mi 10Mi 500Mi 500Mi
Swap: 2.0Gi 300Mi 1.7Gi
Swap 生效后,系统多了 2GB 的虚拟内存。虽然磁盘 IO 比内存慢几个数量级,但对于 Agent 这种间歇性工作的场景,完全够用。
两个方法一起上
单独用任何一个方法可能都不够稳。增大堆内存 + 增加 Swap 组合使用才是正解:
NODE_OPTIONS="--max-old-space-size=4096"告诉 Node.js 可以用更多内存- 2GB Swap 为物理内存提供溢出空间
- 系统在内存紧张时自动把不活跃的页面换到 Swap
这样配置之后,重启 Gateway,微信插件终于加载成功了:
[plugins] openclaw-weixin: WeChat bridge connected
飞书 + 微信同时在线,内存占用在 1.2-1.5GB 之间,加上 Swap,稳稳当当。
吐槽:GitHub 在阿里云上慢到怀疑人生
最后说一个跟 OpenClaw 无关但让人崩溃的事:在阿里云 ECS 上访问 GitHub。
npm install 的时候,各种包从 GitHub 下载,那个速度……1Mbps 的带宽本来就寒酸,GitHub 的连接还时不时就超时、重置。有个依赖包下载了 8 次才成功,每次超时等 30 秒。
如果你也遇到这个问题,几个建议:
- npm 换源:
npm config set registry https://registry.npmmirror.com - GitHub 文件用代理:
ghfast.top之类的国内加速 - 带宽别省:至少 5Mbps 起,1Mbps 是给自己找罪受
这大概是阿里云最让人无语的地方——国内访问 GitHub 的体验取决于你的运气和代理质量。
作者: TheAIEra
来源: 公众号:AI 人工智能时代
本文首发于 AI 人工智能时代,转载请注明出处。

浙公网安备 33010602011771号