性能调优
如果并发数调得太大,由于线程间资源切换及抢夺等,ossutil上传/下载/拷贝性能可能会下降,所以请根据实际的机器情况调整这两个选项的数值,如果要进行压测,可以一开始将两个数值调低,慢慢调大寻找最优值。
如果--jobs选项和--parallel选项值太大,在机器资源有限的情况下,可能会因为网络传输太慢,产生EOF错误,这个时候请适当降低--jobs选项和--parallel选项值。
如果文件数太多大小有不太平均,直接同时使用--jobs=3 --parallel=4进行设定(文件间并发为3,单文件内的并发为4),同时观察MEM, CPU,网络情况,若并未打满网络、占满CPU,则可以继续上调--jobs和--parallel。
OSS 公网上传分为两种,针对这两种场景分别描述。 ● 跨境传输 ● 国内传输 跨境传输 由于网络因素导致,国外国内互传 OSS 文件时,受到国际出口链路的瓶颈影 响,传输速度以及稳定性都是无法保证 100% 可用,尤其是在特殊节日例如重要政 治会议时期可能更容易出现封堵,针对此类情况用户可以考虑如下种优化手段。 SDK 层面 1. 客户可以用 SDK 的断点上传 / 下载 功能,对源文件进行切片传输,降低大 文件的网络传输带宽、延迟开销;同时在网络带宽利用率不高的情况下可以 增加分片的并发数量,提高带宽吞吐。 2. 客户在跨境传输时,可以采用增加重试,适当调大超时时间兼容弱网、丢包 等环境的影响;但超时时间不宜太长,这样会影响重试。 3. 多线程上传时协程的效率会比较高,但是传输速率不一定高,协程是通过线 程中断进行调度切换的,保证每个线程都可以上传但是切换过程中类似软中 断一样都有影响传输速率。 网络层面 1. 可以开通全地域上传加速功能,通过智能 DNS 择优链路访问 OSS。 2. 使用 全站加速,开通 DCDN,将加速类型设置为全球加速,然后将 DCDN 的原站设置为 OSS 域名。DCDN 会通过就近的边缘节点(靠近网民)接入 客户的上下行请求,然后通过智能选路的方式,探测一条最短的回源路径回 到原站 OSS,起到上下行的加速作用。 3. 如果是 PC 端上传,保证本地的文件描述符、网络连接数不要被打满,避免 出现 socket 连接等待引发超时。 4. 如果用户的场景是大量的 OSS 文件被下载,也可以使用 CDN 加速文件的 下行链路,通过分布众多的 CDN 节点就近访问。 工具层面 用户如果不是擅长编码,最快的方式是通过阿里云的自动化工具进行上传、下 载,如果是大量文件并发上传推荐使用 ossutil,支持并发、分片、debug 等场景。 如果客户端不会使用命令行,也可以使用 ossbrower 工具,但是传输性能不如 ossutil 而且支持的文件大小是 5G。 如果用户上传 OSS 使用的 ECS 和 OSS 在同一个地区,建议用户使用内网的 endpoint 地址来上传文件到 OSS。 国内传输 SDK 层面 1. 客户可以用 SDK 的断点上传 / 下载功能,对源文件进行切片传输,降低大 文件的网络传输带宽、延迟开销;同时在网络带宽利用率不高的情况下可以 增加分片的并发数量,提高带宽吞吐。 2. 客户在跨境传输时,可以采用增加重试,适当调大超时时间兼容弱网、丢包等 环境的影响;但超时时间不宜太长,这样会影响重试。 3. 多线程上传时协程的效率会比较高,但是传输速率不一定高,协程是通过线 程中断进行调度切换的,保证每个线程都可以上传但是切换过程中类似软中 断一样都有影响传输速率。 网络层面 1. 可以开通全地域上传加速功能,通过智能 DNS 择优链路访问 OSS。 2. 使用 全站加速,开通 DCDN,将加速类型设置为全球加速,然后将 DCDN 的原站设置为 OSS 域名。DCDN 会通过就近的边缘节点(靠近网民)接入 客户的上下行请求,然后通过智能选路的方式,探测一条最短的回源路径回 到原站 OSS,起到上下行的加速作用。 3. 如果是 PC 端上传,保证本地的文件描述符、网络连接数不要被打满,避免 出现 socket 连接等待引发超时; 4. 如果用户的场景是大量的 OSS 文件被下载,也可以使用 CDN 加速文件的 下行链路,通过分布众多的 CDN 节点就近访问。 工具层面 用户如果不是擅长编码,最快的方式是通过阿里云的自动化工具进行上传、下 载,如果是大量文件并发上传推荐使用 ossutil,支持并发、分片、debug 等场景。 如果客户端不会使用命令行,也可以使用 ossbrower 工具,但是传输性能不如 ossutil 而且支持的文件大小是 5G。 如果用户上传 OSS 使用的 ECS 和 OSS 在同一个地区,建议用户使用内网的 endpoint 地址来上传文件到 OSS。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。