如何选择合适的测试负载?

Posted by Yina Lv on 2022-07-12

A Principled Approach for Selecting Block I/O Traces

本文发表于HotStorage 22,目前SNIA网站上开源的负载非常多(如表1),但通常不清楚要运行哪些负载以进行实验评估。因此本文开发了一个负载分析工具IOTap。如果IOTap分析的两个负载是相似的,那么对它们进行基准测试不仅是多余的,而且还会强调负载的特定特征,从而扭曲整体评估。我们希望IOTap可以用于不偏不倚地选择I/O负载,以公平地评估存储系统。

【问题】如果需要准确地测量诸如I/O延迟等性能特性,那么I/O负载将重播它们的时间戳,并且重播所有这些负载需要一年多的时间,这使得它既棘手又浪费。另一方面,任意选择一组小的工作负载进行测试可能会导致偏差,并缺乏I/O的全频谱的覆盖。
如果没有提供合理的选择理由,这种任意选择可能会导致基准犯罪。当有太多的文件可供选择时(例如Virtual desktop负载),或者当负载太老但又没有更好的替代负载时(例如MS负载),提供这种理由通常是困难的。此外,尽管我们可以依赖专家知识来选择适合特定目标系统的适当负载,但我们认为,由于存储虚拟化、工作负载托管和工作负载异构性,在不同的工作负载集下评估存储系统将变得越来越相关。因此,我们需要一个分析工具链,基于一个有原则的方法来选择I/O负载的一个子集。
【方法】本文提出IOTap,一个从负载中提取重要特征并计算它们之间相似性的工具,为存储系统进行基准测试时提供负载选择指导。使用IOTap工具优点如下:1)IOTap 是公正的,通过分析负载特征而不是凭经验测量负载的执行情况,并使用此信息对覆盖范围最广的工作负载子集进行抽样;2)速度快,只需要对负载进行一次扫描就可以提取出它的所有特征,并使用快速高效的主成分分析(PCA)来理解负载之间的关键差异;3)准确,与在实际存储设备上的实验结果相比,达到0.92的高相关性。
工具开源: https://github.com/swiftomkar/IOTap

IOTAP

IOTap考虑以下标准:
1.既不需要性能度量来对其特性进行分类,也不应该依赖于收集负载的系统硬件。
2.快速,每个负载只需要一次通过,其分析时间最多应与分析的I/O负载的数量线性相关。
3.应将负载的所有方面整体考虑为连续的值谱,而不是根据任意阈值对它们进行分箱和离散化。

为了满足这些设计标准,根据图1中描述的工作流程处理所有负载。
1.提取了253个特征,包括I/O类型、到达时间间距、大小和偏斜的分布。
2.使用PCA(主成分分析)将表征负载的维数从253个特征减少到40个PC(主成分)。
3.根据每条负载的PC坐标,计算两条负载之间的距离,表示相似(如果接近)或不相似(如果远)。
4.提供了一个指导方针,用于根据负载之间的位置和间距选择负载子集进行基准测试。
表3概述了从负载中提取的23个属性和253个特征。每个属性由11个描述其分布和动态的特征组成。属性的第一个特征是跨越整个负载的平均值,接下来还要最小值,中位值,最大值等等。

使用PCA来提取253个特征中最重要的特征。本质上,PCA降低了一个数据集的维数,将253个特征转换为40个PC,其中每个PC都是原始特征的某种组合。PCA相对快速和高效,只需要几秒钟就可以分析一个包含3258(负载数)和253(特征数)的矩阵。

图2将表1中所有3258条负载的位置投影到两个最重要的PC维度上。所有YCSB+RocksDB负载都紧密聚集,因为它们代表切入不同文件的相同负载。同样,尽管有近2700条负载的VDI 都来自28天内捕获的相同虚拟桌面工作负载,但都集中在地图相对较小的角落。相比之下,MS负载涵盖了更广泛的I/O特性。这些分析结果与预期一致,因为 YCSB+RocksDB负载和VDI负载是负载段,而MS生产负载是独立的负载。

表4列出了通过PCA分析的前5个重要特征。单个特性可能是多个PC的一部分,因此我们显示了所有PC的总贡献。最能识别负载的特征是两个连续读取IO之间的均方根距离(RMS)。这个特性反映了工作负载的顺序性;顺序工作负载的RMS距离较小,而随机工作负载的距离较大。第二个重要特征是第一季度(Q1),以 1 分钟为间隔每秒读取的字节数。代表负载密集程度;即使两个工作负载平均具有相似的数据传输速率,突发工作负载的Q1值将更小,而统一工作负载的Q1值将与中位数相似。



支付宝打赏 微信打赏

good luck!