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

自托管虚拟机代理因磁盘空间不足无法启动的问题咨询

自托管Azure DevOps代理磁盘空间耗尽问题解答

问题背景

我们用作自托管代理的虚拟机数据磁盘空间耗尽,导致代理服务无法启动、流水线无法运行,代理处于空闲状态,无法与Azure DevOps Pipeline服务通信。扩展虚拟机代理磁盘大小可解决问题但会增加成本,临时解决方案是删除_diag文件夹中的旧构建日志。


1. Azure是否提供工具处理此类问题?

  • Azure DevOps没有专门的磁盘清理工具,但可借助Azure生态工具和代理自身配置解决:
    • 使用Azure Automation Runbook,定期远程执行脚本清理代理机器上的冗余日志文件;
    • 配置自托管代理的工作目录保留策略,在代理初始化时通过--delete-builds-retention-days参数设置自动清理旧构建文件的天数,从源头减少磁盘占用。

2. _diag文件夹是否为需清理内容的正确文件夹?

  • 是的。_diag文件夹存储代理运行诊断日志、构建过程临时日志等非核心文件,这些文件在构建完成后无长期保留必要(除非需排查历史问题),删除旧文件不会影响代理正常运行,是安全的清理目标。

3. 是否可在流水线中使用自动化手段处理该问题?

  • 可以,两种常用自动化方式:
    • 在流水线末尾添加清理步骤:用PowerShell(Windows)或Bash(Linux)脚本,筛选并删除_diag文件夹中超过指定天数的文件,或仅保留最近N个日志文件。例如Windows脚本:
      Get-ChildItem -Path "C:\agent\_diag" -Recurse -File | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } | Remove-Item -Force
      
    • 配置代理自动清理:修改代理配置文件,设置--delete-builds-retention-days参数(如config.cmd configure --delete-builds-retention-days 7),让代理自动清理旧工作目录和日志。

4. Azure的Maintenance Job功能是否为此问题的解决方案?

  • 不是。Azure Maintenance Job主要用于虚拟机的系统级维护,包括补丁安装、硬件更新等操作,和代理磁盘的日志清理无直接关联,无法解决磁盘空间耗尽的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 12:21:28