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

在HPC中构建8GB Docker镜像时Singularity进程被终止求助

在HPC集群中Singularity构建Docker镜像进程被终止的解决方案

在高性能计算集群(HPC)中使用Singularity构建8GB的Docker镜像时,进程多次被终止:

  • 初始执行salloc --time=1:0:0 --ntasks=4 --gres=gpu:2 --account=<xx> --nodes=2 --ntasks-per-node=2申请资源后,执行singularity build myimage.sif docker-archive://myimage.tar,构建接近完成时报错:

FATAL: While performing build: while creating squashfs: create command failed: signal: killed:

  • 调整资源为salloc --time=1:0:0 --ntasks=4 --gres=gpu:4 --account=<xx> --nodes=4 --ntasks-per-node=1后,进程立即终止,日志显示复制blob时被Killed。

结合现象判断核心原因是临时存储空间不足,以下是具体解决方法:

  • 指定临时目录到大容量存储路径
    Singularity默认使用集群节点本地的/tmp目录作为临时空间,该分区通常容量有限,构建大镜像时极易耗尽。执行构建命令时通过--tmpdir参数指定到集群提供的大容量共享存储路径,示例:

    singularity build --tmpdir /path/to/large-shared-storage/tmp myimage.sif docker-archive://myimage.tar
    

    确保指定路径的剩余空间至少为镜像大小的2-3倍(建议预留20GB以上)。

  • 调整salloc资源参数(聚焦内存与存储)
    之前的资源调整仅修改了GPU和节点数,未关注内存与本地存储配额。可在salloc命令中添加内存和临时存储申请参数,示例:

    salloc --time=1:0:0 --ntasks=1 --gres=gpu:1 --account=<xx> --nodes=1 --mem=16G --tmp=20G
    

    注:--tmp参数的支持取决于集群配置,若集群不支持则直接使用--tmpdir指定共享存储路径即可。

  • 提前验证临时空间可用性
    构建前先检查目标临时目录的剩余空间,避免中途因空间不足失败:

    # 检查默认/tmp空间
    df -h /tmp
    # 检查自定义临时目录空间
    df -h /path/to/large-shared-storage/tmp
    
  • 采用沙箱模式分步构建
    先以沙箱模式构建镜像,再转换为sif格式,分步操作降低单次临时空间占用:

    # 构建沙箱格式镜像(解压到目录)
    singularity build --sandbox myimage_sandbox docker-archive://myimage.tar
    # 将沙箱转换为sif镜像
    singularity build myimage.sif myimage_sandbox
    

    沙箱模式的操作路径需选在大容量存储目录下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:52:15