Ubuntu 18.04虚拟机从Google Cloud Storage桶下载文件中途停止如何解决
GCS大文件下载中途停滞问题解决建议
以下是经过验证的可行解决方案,可按顺序尝试:
- 调整gsutil并行与分段下载参数
默认配置对4GB级大文件的适配性差,单链接长时间传输容易触发会话超时。可通过临时参数覆盖默认配置执行下载:gsutil -o GSUtil:parallel_composite_upload_threshold=150M -o GSUtil:parallel_process_count=8 -o GSUtil:parallel_thread_count=8 cp -r gs://my-storage-bucket/dataset1 /home/user/data
上述参数会将超过150M的文件自动拆分为分段并行下载,规避单链路传输故障。 - 改用gsutil rsync命令替代cp
rsync的增量校验和续传逻辑比cp更稳定,还支持多线程传输,无需手动处理断点文件:gsutil -m rsync -r gs://my-storage-bucket/dataset1 /home/user/data/dataset1
执行后会自动跳过已完整下载的文件块,就算中途中断,重新执行命令即可继续传输。 - 调整系统TCP存活探测配置
Ubuntu 18.04默认的TCP超时阈值偏高,长时传输遇到网络波动时容易卡住无响应,可临时调整内核参数:
sudo sysctl -w net.ipv4.tcp_keepalive_time=60 sudo sysctl -w net.ipv4.tcp_keepalive_intvl=10 sudo sysctl -w net.ipv4.tcp_keepalive_probes=6
如果需要永久生效,可将上述3行配置添加到/etc/sysctl.conf文件中,执行sudo sysctl -p后生效。
- 升级gsutil到最新版本
Ubuntu 18.04官方源自带的gsutil版本较低,存在多个大文件下载的已知bug,可通过以下命令升级:pip install --upgrade gsutil
如果是通过Google Cloud SDK安装的gsutil,可执行gcloud components update完成升级。 - 开启调试日志定位根因
如果上述方案都无效,可在下载命令中添加-D参数输出详细调试日志,定位停滞时的具体报错类型:gsutil -D cp -r gs://my-storage-bucket/dataset1 /home/user/data
常见报错包括出口带宽配额不足、存储桶访问权限临时过期、虚拟机层面的流量限速等,可根据日志对应处理。
内容的提问来源于stack exchange,提问作者brokkoo
相关产品推荐
相关产品推荐

