简介
今天在用 CryoSPARC 跑 Non-uniform Refinement 时,任务意外终止了。排查后发现,很可能是内存不足导致进程被系统杀掉了。
增加内存有两种办法:一是花钱,二是增大 swap 空间。
由于工作流里大多数任务对内存要求不高,而且从任务日志来看,只需要补充少量内存就能解决问题,所以打算先试试增大 swap 空间。
详细步骤
以下内容均来自 ChatGPT4,已验证可用,并稍作修改以保证可读性。
- 先停用当前的 swap 文件:打开终端,执行以下命令:
BASH
sudo swapoff -a
这一步可以用
dd或fallocate命令完成;fallocate比dd快,但不是所有文件系统都支持。用
fallocate将 swap 文件调整为 8GB 的示例:BASHsudo fallocate -l 8G /swapfile如果你的系统不支持
fallocate,可以使用dd命令:BASHsudo dd if=/dev/zero of=/swapfile bs=1G count=8 # `bs=1G` indicates that each time a 1GB is written,`count=8` indicates that 8GB total written。
设置 swap 文件权限,使其仅 root 可读写:
BASH
sudo chmod 600 /swapfile
- 将文件设置为 swap 文件:
BASH
sudo mkswap /swapfile
- 启用新的 swap 文件:
BASH
sudo swapon /swapfile
- 让 swap 设置永久生效
为了让系统重启后 swap 设置依然生效,需要把它加入 /etc/fstab 文件。打开 /etc/fstab 文件,添加以下内容:
BASH
/swapfile swap swap defaults 0 0
这样,每次系统启动时都会自动启用 swap 文件。
Note
看起来 /etc/fstab 里已经有 /swapfile 的配置了,所以最后一步可以按需跳过。
结语
把 swap 空间从 2G 加到 8G 后,任务成功跑完了。省下 800 元,美好的一天。