本文从元数据索引构建效率与数据读取性能两个维度,对strmvol存储卷进行性能评估,涵盖文件读写速度、高并发场景稳定性等核心指标,帮助您更好地选择和使用strmvol存储卷。
以下测试数据为测试环境下的理论值,实际请以您的操作环境为准。
元数据索引构建
对于某个strmvol存储卷,若在某个节点上没有任何Pod正在挂载该卷,则首个挂载该卷的Pod会触发节点挂载初始化流程,即在挂载时会先创建相关虚拟块设备并构建OSS文件的元数据索引。该阶段需要占用节点部分资源,Pod会处于ContainerCreating状态。
测试环境:节点规格为ecs.g8i.2xlarge,所在地域为cn-beijing。
OSS挂载点下文件数量 | erofs(Alibaba Cloud Linux 3) | ext4(非Alibaba Cloud Linux 3) | ||||
构建耗时 | 内存峰值 | CPU使用率峰值 | 构建耗时 | 内存峰值 | CPU使用率峰值 | |
100000 (10万) | 4.09s | 125 MB | 113% | 6.96s | 150 MB | 116% |
1000000 (100万) | 11.07s | 871 MB | 201% | 35.37s | 512 MB | 192% |
10000000 (1000万) | 130.59s | 8.7 GB | 247% | 407.00s | 2.4 GB | 253% |
数据读取性能测试
不同resourceLimit参数下strmvol存储卷的数据读取性能对比
测试环境:节点规格为ecs.g7nex.32xlarge,OS为Alibaba Cloud Linux 3,所在地域为cn-beijing。
小文件 (100 KB图像文件)随机读场景,开启direct模式。
不同resourceLimit下仅性能上限存在差别,并发数未达上限时,性能表现接近。
说明下表注释中分别记录了不同resourceLimit配置下性能达到上限时的并发数。其中,对于非Alibaba Cloud Linux 3操作系统,不同resourceLimit配置时均在64并发下达到读取性能上限。
测试场景
4并发读
8并发读
16并发读
32并发读
64并发读
128并发读
256并发读
512并发读
1024并发读
性能
11.53 MB/s
101.06 img/s
21.99 MB/s
192.62 img/s
48.01 MB/s
417.95 img/s
93.90 MB/s
817.45 img/s
180.88 MB/s
1577.12 img/s
312.82 MB/s
2727.48 img/s
513.54 MB/s
4475.20 img/s
974.47 MB/s
8491.96 img/s
1306.61 MB/s
11386.33 img/s
注释
无
无
无
无
非Alibaba Cloud Linux 3系统性能上限
2C4G模式性能上限
4C8G模式性能上限
8C16G模式性能上限
16C32G模式性能上限
大文件单流读与小文件(100 KB图像文件)顺序读场景为例的通用场景,关闭direct模式。
资源限制
256并发顺序加载 MB/s
大文件单流读 MB/s
2c4g
349.89 MB/s
2742.05 img/s
216
4c8g
789.52 MB/s
6187.34 img/s
342
8c16g
1446.17 MB/s
11333.37 img/s
548
16c32g
2383.38 MB/s
18678.12 img/s
926
说明预设值能保证在通用的只读场景下,各类的数据操作均有较好的性能。
实际上在大文件单流读场景下,8C配置已可达2.5~2.7GB/s吞吐。若您的业务有明显数据读取特性,请提交工单申请。
不同方案下数据读取性能对比
测试环境:节点规格为ecs.g8i.2xlarge,OS为Alibaba Cloud Linux 3,所在地域为cn-beijing。
测试场景:
ossfs使用默认配置;ossfs开启直读功能(默认内存池为1 GB限制)。
strmvol分别使用 2c4g和4c8g资源限制。
在随机加载小文件(128 KB文本文件)场景中开启direct模式,其余场景关闭。
测试场景 | 4线程并发随机加载 MB/s | 4线程并发顺序加载 MB/s | 大文件单流读 MB/s |
ossfs默认配置 | 8.4 | 8.4 | 179.2 |
ossfs直读1 GB | 3.4 | 3.4 | 293.4 |
strmvol 2c4g | 24.9 | 40.0 | 196.8 |
strmvol 4c8g | 95.6 | 147.1 | 334.5 |