本文为您介绍在特定业务场景中,使用OSS内网域名与使用OSS加速器这两种情况下所呈现出的性能差异。
大批量数据操作场景
通过在使用OSS内网域名以及使用OSS加速器域名这两种方式下,针对ossutil在下载/读取OSS数据进行了性能测试,测试数据使用10000个100 KB的文件,总量约为976 MB。
测试方案
测试工具
操作
说明
ossutil
使用
cp
命令从OSS下载10000个大小为100 KB的文件到本地。通过使用OSS内网域名以及OSS加速器域名,针对OSS中目录内文件并发下载到本地的速度进行测试。
测试结果
测试工具
使用OSS内网域名
启用OSS加速器预载数据,并使用加速域名访问
ossutil
2.2 MB/s
24 MB/s
测试结论
ossutil在配合OSS加速器使用后的性能大约是不开启加速器性能的10倍。
由此可以看出,在配合使用OSS加速器后,对于大规模数据的批量操作(如ossutil的场景),OSS加速器能够显著提升数据传输和访问的速度。
大规模数据下的机器学习/深度学习场景
通过在使用OSS内网域名以及使用OSS加速器域名这两种方式下,针对由OSS Connector for AI/ML使用不同域名构建出的数据集,进行了OSS数据读取性能上限测试。测试数据使用10,000,000张图片,平均每张100 KB,总量约1 TB。
测试参数
参数
值/操作
说明
dataloader batch size
256
每次处理的数据批次大小为256个样本。
dataloader workers
32
使用32 个工作进程来并行加载数据。
transform
def transform(object): data = object.read() return object.key, object.label
未对数据进行预处理。
测试结果
数据集构建方式
数据集类型
使用OSS内网域名
启用OSS加速器预载数据,并使用加速域名访问
OSS Connector for AI/ML方式构建
OssIterableDataset
99920 img/s
123043 img/s
OssMapDataset
56564 img/s
78264 img/s
测试结论
从测试结果数据来看,启用OSS加速器之后的性能,大约是不启用OSS加速器的1.6倍左右。OSS Connector在不使用OSS加速器的情况下,能够轻松应对各种高并发、高带宽访问。而配合使用OSS加速器后,其性能则更为强大。
下载响应延迟统计
通过OSS以及OSS加速器多次下载10 MB的Object进行测试,统计其响应延迟(单位ms)分位数。
以下图表中的P50表示50%的请求符合当前统计的延迟情况,P999表示99.9%的请求符合当前统计的延迟情况。
通过图表数据可以看出,结果显示降低了约10倍延迟。
云上数据湖及数仓场景
某用户分别对本地盘、原生OSS以及OSS加速器作为存储介质进行测试。测试数据使用760 GB的lineitem表约20亿条数据。
延迟情况
场景
Local Cache FS (本地)
OSS
OSS加速器
点查
382ms
2451ms
1160ms
1000条数据抽取
438ms
3786ms
1536ms
10%不连续查询
130564ms
345707ms
134659ms
全量扫描测试
171548ms
398681ms
197134ms
性能情况
在线查询时,OSS加速器读命中RT是直读OSS的2~2.5倍。全量扫描、10%随机查询性能是直读OSS的2~2.5倍,约为Local ESSD CacheFs本地读性能的85%。
在线查询时,OSS加速器单个请求固有延迟为8~10ms。1000条随机查询、点查性能是直读OSS的1.5~3倍,约为Local ESSD CacheFs本地读性能的30%。
容器及自动驾驶仿真训练场景
使用启用OSS加速器的情况下,大量容器同时启动获取镜像,地图和日志数据。仿真训练的整体时长降低了60%。
类型 | 容量 | 峰值带宽 | 时长 |
OSS | 204 TB(OSS) | 100 Gbps | 2.2小时 |
OSS+OSS加速器 | 204 TB(OSS)+128 TB(OSS加速器) | 300 Gbps | 40分钟 |