java sdk 分片上传和 ossutil 执行上传的区别

关于 Java SDK 分片下载和 ossutil 分片下载

今天遇到一个 oss 下载问题,让我思考了很久。 用户使用不同的工具下载,速率却并不是相同。  
一个使用 ossutil ,700M+ 的文件, 40s 左右就下载好了, 而使用 java sdk ,10M+ 的文件却用了 40s,
相同的网络环境,使用不同工具,两者之前的速率差距非常大。一直好奇到底是哪里导致了它们的速率差异性。
以我目前所思所想并结合下载日志来看。
1. ossutil 的 upload 分片效率 和 java sdk 的分片 range 的实现方式不一样, upload 分片形式效率更多速率更快。
2. ossutil 的并发操作和 java sdk 的并发操作实现也不一样,ossutil 是 go 开发的,天生带有并发优势,所以它会更快。
3. 查看日志,主要慢是客户端那边引起的,怀疑可能是客户端机器 IO 有瓶颈,导致写入速率慢。 ossutil 和 javak sdk 保存的路径不一致。

---

破案了,和后端研发人员确认了,是 SDK 问题, SDK 4k 对齐有问题,导致写入到 nas 时会有异常。

posted @ 2021-12-14 00:59  秋风凌冬  阅读(237)  评论(0)    收藏  举报