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

Azure Ubuntu 16.04虚拟机磁盘读取字节突增致无响应及部署失败求助

这种磁盘IO突增搞崩部署的情况我之前也碰到过几次,结合你提到的是启用CD预览版后出现的问题,咱们一步步来排查解决:

1. 先锁定CD预览版相关的IO源头

既然问题是启用CD预览版后才出现的,优先从这块入手:

  • 检查CD流水线的部署步骤:看看是不是有全量文件同步、重复拉取镜像、无限制生成日志这类操作,比如有些预览版的部署任务可能默认没有开启增量同步,导致每次部署都要重新读取大量文件。
  • 实时监控进程IO:在触发部署的同时,用iotop命令直接抓出耗IO的进程,一眼就能定位是不是CD Agent或者相关部署脚本在搞事情:
    sudo apt-get install iotop -y
    sudo iotop -oP  # 只显示正在产生IO的进程,带PID和详细路径
    
  • 检查CD Agent的工作目录:看看是不是堆积了大量旧的部署包或日志文件,导致读取时IO暴增:
    sudo du -sh /var/lib/azuredevops/_work/*  # 默认Agent工作目录,若自定义了路径请替换
    
2. 系统层面排查潜在IO瓶颈

有时候CD只是导火索,系统本身的配置问题也会放大IO压力:

  • 检查Swap使用:如果内存不足导致进程频繁换页到Swap分区,会直接拉满磁盘IO,用下面的命令查看:
    free -h
    swapon --show
    
    如果Swap使用率超过50%,可以临时关闭Swap(Ubuntu 16.04需确保没有依赖Swap的进程)或者临时扩容Swap。
  • 检查系统磁盘日志:看看有没有磁盘硬件或驱动层面的异常,比如IO超时、坏块警告:
    sudo tail -n 100 /var/log/syslog
    sudo dmesg | grep -i disk
    
  • 清理临时文件:部署过程中生成的临时文件没及时清理,也会导致磁盘读取时的额外开销:
    sudo rm -rf /tmp/*
    sudo journalctl --vacuum-size=500M  # 清理系统日志,避免日志文件过大
    
3. Azure VM磁盘配置优化

Azure层面的磁盘规格也会直接影响IO性能:

  • 检查磁盘SKU:如果用的是Standard HDD,换成Standard SSD或Premium SSD能显著提升IOPS和吞吐量,尤其适合部署这类IO密集场景。
  • 查看磁盘配额:在Azure监控里查看Disk Read Operations/sec和Average Read Latency指标,如果Latency超过100ms且IOPS接近磁盘的配额上限,说明需要升级磁盘规格。
  • 临时升级VM规格:部分小规格VM(比如B系列)的磁盘IO配额有限,部署时容易打满,可临时升级VM规格完成部署后再降级。
4. 临时应急方案

如果着急完成部署,可以先试试这些快速缓解的方法:

  • 清理CD Agent缓存:删掉旧的部署工作目录,减少读取量:
    sudo rm -rf /var/lib/azuredevops/_work/*
    
  • 回退到传统CD方式:如果确定是预览版的bug,可以暂时用之前的Release流水线部署,等预览版修复后再切换。
  • 重启VM后立即部署:你提到重启后磁盘活动会降低,趁这个窗口期快速执行部署,避开IO堆积。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:49:02