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

降低服务器上Azure自托管代理的存储占用:如何释放空间?

Azure自托管代理_work文件夹存储优化与常见问题解答

1. 如何减少服务器存储空间占用?

  • 配置代理自动保留策略:在Azure DevOps组织的代理池设置中,编辑目标代理的工作目录规则,设置作业历史保留天数和最大缓存容量,让代理自动清理过期的作业文件与缓存数据。
  • 启用作业自动清理:在流水线的作业配置里勾选「完成后清理工作目录」,每次作业结束后自动删除当前作业的临时工作文件。
  • 手动清理缓存:使用az devops cache delete命令清理指定类型的缓存(如NuGet、Docker镜像),或定期删除c文件夹中确认过期的缓存内容。
  • 拆分代理职责:将同时承担构建、部署的代理拆分为专用构建代理和部署代理,避免不同类型的缓存交叉堆积。
  • 定期清理临时文件:直接删除temp文件夹内的所有文件,这类临时数据不会影响现有或后续作业。

2. _work子文件夹的用途

根据Azure自托管代理的默认结构,各子文件夹作用如下:

  • a:存放作业下载的构件(Artifacts)、第三方工具包,比如构建依赖库、部署包等。
  • b:作业的临时工作目录,流水线运行时的源代码、编译产物、执行脚本都会存放在这里,每个作业对应一个子目录。
  • c:代理的缓存目录,存储NuGet包、Docker镜像、npm依赖等重复使用的资源,用于加速后续作业的执行。
  • temp:系统临时文件存储目录,作业运行过程中产生的临时数据、日志片段都会临时存放在这里。
  • _tasks:存放下载的Azure DevOps任务扩展,各类构建、部署任务的执行脚本和依赖文件都在这个目录下。

3. 是否可删除部分文件夹释放空间?删除后可能存在哪些问题?

可安全删除的文件夹及注意事项

  • temp:完全可以删除,所有文件都是临时生成的,不会对现有或后续作业造成影响。
  • b:确认没有作业正在运行时,可以删除里面的子目录(已完成作业的工作目录),删除后不会影响后续作业;但如果有作业正在执行,删除会直接导致作业失败。
  • a:若里面的构件已无后续作业依赖,可删除;但如果有流水线依赖这些构件,会导致作业失败,建议优先通过DevOps的自动保留策略清理,避免手动误删。

不建议随意删除的文件夹及风险

  • c:删除后会清空代理缓存,后续作业需要重新下载所有依赖,导致作业执行速度变慢,但不会引发失败。
  • _tasks:删除会导致代理无法找到对应的任务扩展,正在运行的作业会直接失败,后续作业需要重新下载任务扩展,大幅降低执行效率。

通用风险

如果删除文件夹时正好有作业在运行,会直接中断作业并导致失败;手动删除容易误删需要保留的文件,建议优先使用Azure DevOps提供的自动清理机制,而非手动操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 07:35:17