共计 1936 个字符,预计需要花费 5 分钟才能阅读完成。
背景痛点
在 Autodl 算力云上进行深度学习训练时,数据盘空间不足是一个常见问题。随着训练轮次的增加,中间生成的日志、临时文件和模型检查点会快速消耗存储空间。当剩余空间低于 5% 时,可能导致以下问题:

- 训练进程因无法写入新数据而中断
- 模型保存失败,损失训练进度
- 系统性能下降,IO 等待时间增加
手动清理存在两大风险:
- 误删关键文件(如训练中的模型权重)
- 遗漏大体积临时文件,清理不彻底
技术方案
步骤 1:分析磁盘使用情况
在终端执行以下命令查看各目录占用空间:
du -h --max-depth=1 /root/autodl-tmp | sort -hr
输出示例:
12G /root/autodl-tmp/logs
8.4G /root/autodl-tmp/checkpoints
1.2G /root/autodl-tmp/datasets
步骤 2:安全删除策略
建议按以下优先级清理:
- 过期日志文件(*.log)
- 旧的模型检查点(仅保留最近 3 个 epoch)
- 临时下载的压缩包(*.zip, *.tar.gz)
- Jupyter notebook 的缓存(.ipynb_checkpoints)
关键命令:
# 删除 7 天前的日志
find /path/to/logs -name "*.log" -mtime +7 -exec rm {} \;
# 保留最近 3 个检查点
ls -t /path/to/checkpoints | tail -n +4 | xargs rm -f
步骤 3:备份关键数据
推荐两种备份方式:
- 使用 Autodl 内置的持久化存储功能
- 通过 rsync 同步到本地开发机
rsync -avz --progress /root/autodl-tmp/important_data user@local_ip:/backup_path/
代码示例
以下 Python 脚本实现自动化清理(建议保存为 clean_util.py):
#!/usr/bin/env python3
import os
import time
from pathlib import Path
def clean_temp_files(root_path, days=7):
"""清理指定目录下超过特定天数的临时文件"""
now = time.time()
for dirpath, _, filenames in os.walk(root_path):
for f in filenames:
filepath = Path(dirpath) / f
# 匹配临时文件模式
if filepath.suffix in ('.tmp', '.swp', '.nfs'):
try:
file_mtime = filepath.stat().st_mtime
if (now - file_mtime) > (days * 86400):
filepath.unlink()
print(f"Deleted: {filepath}")
except Exception as e:
print(f"Error deleting {filepath}: {str(e)}")
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--path", default="/root/autodl-tmp")
parser.add_argument("--days", type=int, default=7)
args = parser.parse_args()
print(f"Starting cleanup in {args.path}...")
clean_temp_files(args.path, args.days)
print("Cleanup completed")
避坑指南
高危操作黑名单
- ❌ 直接删除整个目录:
rm -rf /root/autodl-tmp/* - ❌ 删除名称中包含 ”output” 的文件:可能误删训练输出
- ❌ 清理前不检查 inode 使用:
df -i查看 inode 剩余量
安全建议
- 首次清理前创建快照
- 使用
rm -i交互式删除 - 对重要目录设置只读权限:
chmod -R a-w /root/autodl-tmp/models
性能考量
最佳实践时机
- 训练任务暂停期间
- 凌晨 2 - 4 点(通常使用率最低)
- 通过
nvidia-smi确认 GPU 利用率 <10% 时
影响评估
- 大量文件删除会导致短时 IO 负载升高
- 建议分批次执行(每次不超过 1000 个文件)
- 可配合
ionice降低磁盘优先级:ionice -c 3 find /path -type f -delete
经验分享
在实际项目中,我建立了以下清理规范:
- 按项目创建独立目录结构
- 所有临时文件统一放在
/temp子目录 - 每周一自动执行清理脚本(通过 crontab)
欢迎在评论区分享你的数据盘管理技巧,特别是处理超大型数据集(100GB+)时的优化方案。
正文完
