更新时间:2024-04-17 GMT+08:00

io timout、EOF错误原因定位及解决

i/o timeout及EOF报错是两种常见的因为网络原因导致请求失败的场景,通常是由于网络波动等原因导致;常见的定位思路包括:

  1. 通过ping桶域名(bucketName.endpoint)判断本地到指定访问的桶域名之间的网络是否不通;如果不通优先排查本地网络问题。
  2. 如果问题出现概率较大,且域名可以ping通的情况下,可以通过修改endpoint为http协议后采用抓包软件进行网络抓包,抓包后可以具体分析实际网络链路中是否存在丢包等问题从而针对性解决。

解决思路:

  1. 在网络不通的情况下优先解决本地网络问题;如需配置代理可以参考为obsutil配置HTTP代理
  2. 在偶现该问题的情况下,可以考虑重试命令以规避该问题;针对上传/下载/复制等场景,可以在执行cp时指定-u参数进行增量上传,可以避免重试批量任务中已经成功完成的部分任务。
  3. 在网络情况不理想的场景下,针对上传/下载/复制等场景,可以考虑适当减小defaultParallels(-p)和defaultJobs(-j)参数来降低整体的并发任务数量,减少问题出现的概率。