JESD219 Workload学习

JESD219是一个描述SSD性能和耐久性的测试规范,通过统一工作负载定义,评估不同厂家产品。文章详细解释了NAND寿命、PEcycle、GC、WriteAmplification等因素如何影响SSD性能,以及EnterpriseWorkload和ClientWorkload的特点和测试要求。
摘要由CSDN通过智能技术生成

1:什么是JESD219

JESD219协议全称SSD Endurance Workload,是用于描述SSD的标准测试规范,规定了一套端到端的测试方法评估SSD耐久性和性能,统一了各个厂家的测试标准,帮助确保SSD的质量、可靠性和性能。

JESD219分为: Endurance Workload and Client Workload

2:为什么要有JESD219

SSD使用NAND进行存储,NAND的寿命一般使用PE cycle次数(program/Erase)来表示。

Nand以Page写入,以Block擦除,通过GC的机制来回收被无效数据占用的空闲空间,此过程就会产生P/E。

GC又会带来写放大,不同的Workload有不同的写放大因子,WAF写放大因子越大,导致PE消耗增加越多。所以在不同workload测试的寿命数据不同

常见的Workload:顺序,纯4K随机,JESD219 workload,顺序读写WAF最理想, JESD219最符合实际应用场景

PE cycle -->GC -->WAF-->Workload impact

所以固态硬盘的工作负载对其能够写入的数据量(也就是寿命)有着巨大的影响,JESD议里规定了消费级和企业级Endurance Workload,提供了通用化,标准化的工作负载,使用JESD219提供的workload测试不同厂商的SSD,得出的结果更具有可比性。

3.Enterprise Workload特性和要求

进行219 Enterprise Workload 测试,先应填盘有效数据,避免SSD在执行workload TEST期间,由于LBA的内容而导致驱动返回 data read error。如果Formatted SSD已经满足了测试要求,就可以直接进行Workload测试。

a) Payload size 分布比例:

0

b) 各种Payload按照一定要求排布原则

>=4096 的数据按照一定顺序排列,于4k的要保证4k边界对齐。可能会提升FW效率。

C)数据访问量分布:分为三组,80%的冷数据占有20%的访问量。

1) 50% of accesses to first 5% of user LBA space (LBA group a)

2) 30% of accesses to next 15% of user LBA space (LBA group b)

3) 20% of accesses to remainder of user LBA space (LBA group c)

具体的Workload 读写操作,通过IO引擎参数配置,W/R比例,时间, Pattern 等等。

访问量实现,有两种方法

1:Deterministic Method

按照一定顺序重复执行对应group的IO工作

0

2:Random Method:在三个group中随机交叉访问进行。

基于a/b/c的workload要求产生 相应的权重因子,权重因子大的,表示访问它的概率就大,根据这些权重因子,去随机产生IO,所以宏观上是随机交叉执行的

d) 避免测试单一区域

为了避免只测试SSD的特定区域,c)描述的分布通过在不同的测试单元上偏移用户LBA空间,以使所有SSD的LBA都受到最高数量的访问

e)写入数据负载原则:

1.写入数据有效负载大小分布应同时应用于这三个LBA组

2.访问百分比符合4C中的比例。

3.每个LBA group中的访问是随机的

f) 随机数据原则

随机数据被认为具有100%的熵,即完全混乱无序化。生成随机数据的方法,不做限制。

对于随机化数据,如果测试中SSD执行数据压缩操作,那么这种操作对数据的影响和加密操作相同。

在数据随机原则下,也可以在每个sector中的随机数据一些byte替换为Metadata,例如LBA号和其他一些有用信息,前提是这些信息可以增强测试解释能力。Phxio 支持每个LBA有Header/Meta,类似这种操作,保证同一个LBA重复写的数据也不同

4.Client Workload Overview

Client Endurance Workload application:1.Preconditioning Phase 2.Test Phase

1)Preconditioning Phase steps:

1.使用随机数据一次性按顺序写入完整的LBA地址空间 100%(当前使用)

2.如果PreCond%full值小于100%,则从最大的LBA连续创建自由的LBA空间,该LBA位于与PreCond%full值相对应的较低LBA地址。

2)Test Phase

Test Phase会多次运行Test Trace。这些Test Trace的目标是模拟客户端环境中的实际使用情况。每次迭代使用相同的LBA足记,以确保测试的一致性和可比性.

5.Client Traces

1.Reference Trace

一种command trace,是SSD Test Trace库SSD容量范围中的一种,包含对代表性SSD的所有IO操作,包含开机/启动,休眠/激活期间内发生的一系列操作,理解为命令流。主要有:write command, trim command, flush command。

Client Worklaod不能应用于作为缓存应用的SSD测试。

2.Test Trace

拥有Reference Trace的所有命令集。Test Trace涵盖了驱动器所有LBA Range 范围。并将连续Trim命令合并为单个Trim 命令,减少冗余。

JEDEC Trace Lib中存在多个Test Trace,每个Test Trace对应于特定的SSD容量参数值。这意味着针对不同的SSD容量,可以使用相应的Test Trace来进行评估,从而更准确地反映出不同容量下的SSD性能和行为特征

具体Test Trace 可以通过扩展或者压缩Reference Trace来满足不同容量SSD的test 需求。

Compression 压缩:通过减少Trace中 cold lba ranges的长度实现。

Expansion 扩展:通过增加Trace中的Cold LBA Range长度实现。

Reference Trace构成:Trace = Hot + Cold

(什么是Cold LBA: An LBA Range not referenced by a write or trim in a trace.)

扩展压缩方式:

在压缩和扩展过程中,cold LBA长度将根据原始长度比例进行调整。Hot数据不做改动。

假设Reference Trace中Cold LBA长度为C,那么每一段大于20MB的individual Cold LBA Range,都将压缩或者扩展(M-T)/C * Individual Length的Cold LBA,形成新的Test Trace。

调整的步长应该是4KB的倍数。这样做是为了确保调整后的冷LBA范围长度保持4KB的对齐,从而避免数据的碎片化和对性能的影响

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值