Azure DevOps发布管道Copy files over SSH任务传输速度骤降求助
排查Azure DevOps「Copy files over SSH」任务传输变慢问题
一、先验证SSH连接本身的性能
- 在Windows代理服务器上,用原生
scp命令手动传输相同的3GB文件到Ubuntu目标机,对比耗时:- 如果手动传输也慢,说明问题出在SSH连接/网络层面,和Azure DevOps任务无关,继续排查:
- 检查子网间的安全组、网络ACL是否新增了带宽限流、数据包过滤规则
- 用
tracert(Windows)或traceroute(Ubuntu)测试路由路径,用ping -t持续测试延迟和丢包率,确认是否存在网络波动或路由异常 - 检查Ubuntu服务器的
/etc/ssh/sshd_config配置,尝试开启压缩(Compression yes)、调整MaxSessions参数,重启SSH服务后再测试
- 如果手动传输速度正常,说明问题出在Azure DevOps任务的配置或执行逻辑上
- 如果手动传输也慢,说明问题出在SSH连接/网络层面,和Azure DevOps任务无关,继续排查:
二、优化「Copy files over SSH」任务配置
- 调整任务核心选项:
- 开启任务配置里的「Enable compression」开关,通过压缩减少传输数据量
- 临时关闭「Verify destination」选项,该选项会遍历目标目录对比文件,大文件场景下会额外消耗时间
- 拆分大文件传输:如果是单个3GB大文件,先在代理服务器用
split命令分割成多个小文件,传输完成后在Ubuntu端用cat合并,测试是否提升速度 - 核对文件匹配规则:确认Artifacts的文件筛选规则是否误包含了大量冗余文件(如隐藏文件、历史日志),导致实际传输总量远超3GB
三、检查Windows代理服务器的系统状态
- 监控资源占用:传输期间打开任务管理器,确认CPU、内存、磁盘IO是否被其他进程(如杀毒扫描、系统更新)占用,导致代理进程资源不足
- 排查防护软件:检查Windows防火墙、第三方杀毒软件是否新增了SSH出站流量的扫描或限制策略,临时关闭相关防护后测试传输速度
- 确认代理权限:确保Azure DevOps代理服务以管理员权限运行,避免因权限不足导致的资源调度限制
四、排查管道的其他关联因素
- 检查前置任务:确认两个出现问题的管道,是否在Copy任务前新增了占用带宽或资源的任务(如大型构建、批量文件解压),导致Copy任务执行时资源被抢占
- 切换代理测试:如果有其他自托管代理,临时切换代理执行相同Copy任务,排除当前代理服务器的个别问题
内容的提问来源于stack exchange,提问作者Raghu
相关产品推荐
相关产品推荐

