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

通过Slurm提交R脚本作业遇磁盘空间不足错误求助

解决Slurm运行R脚本磁盘空间不足的方案

1. 更换输出目录

  • 先执行 df -h 查看当前输出目录的剩余空间,如果当前目录空间不足,直接把输出文件写到集群的大容量分区(比如scratch目录)。修改R脚本里的输出路径:
    write.table(models_df, file = paste0("/path/to/your/scratch/", genes_union[k], ".txt"), ...)
    
  • 提交Slurm作业时,也可以通过 --workdir=/path/to/scratch 指定作业的工作目录,避免默认用提交目录的空间。

2. 管控临时文件

  • R默认会在系统临时目录(如/tmp)生成临时文件,这个目录通常空间有限。在R脚本开头指定自定义临时目录:
    Sys.setenv(TMPDIR = "/path/to/large/tmp")
    
  • 脚本中用完的中间数据对象,及时用 rm(对象名); gc() 清理,释放内存和临时存储资源。

3. 优化输出文件策略

  • 2150个单独的txt文件会占用大量inode(部分集群inode不足也会触发“空间不足”报错),建议合并输出:比如把所有基因的结果汇总到一个文件,或者每100个基因生成一个合并文件。
  • 改用更紧凑的存储格式,比如R的.rds或.feather,比纯文本txt节省空间,后续需要再转成txt即可:
    # 保存为rds格式
    saveRDS(models_df, file = paste0("/path/to/scratch/", genes_union[k], ".rds"))
    

4. 检查存储配额

  • 执行 quota 命令查看个人存储配额是否用尽,若配额不足,清理名下的旧文件,或联系集群管理员调整配额。部分集群会给单作业分配临时存储限额,可通过Slurm文档或管理员确认。

5. 优化任务拆分的存储分配

  • 之前拆分任务无效,可能是所有小任务仍往同一目录输出导致空间累积。可以按批次创建子目录分散输出:
    # 每50个基因划分一个批次目录
    batch_num <- floor((k-1)/50)
    batch_dir <- paste0("/path/to/scratch/batch_", batch_num)
    dir.create(batch_dir, recursive = TRUE, showWarnings = FALSE)
    write.table(models_df, file = paste0(batch_dir, "/", genes_union[k], ".txt"), ...)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 19:27:22