JEDEC耐久性测试 - pynvme/pynvme GitHub Wiki
ioworker有很多参数,今天我们再来看两个新的输入参数,通过这两个参数,ioworker可以产生符合JEDEC要求的enterprise endurance workload,详见:https://www.jedec.org/sites/default/files/docs/JESD219.pdf
def test_ioworker_jedec_enterprise_workload(nvme0n1):
distribution = [1000]*5 + [200]*15 + [25]*80 #L2
iosz_distribution = {1: 4, #L3
2: 1,
3: 1,
4: 1,
5: 1,
6: 1,
7: 1,
8: 67,
16: 10,
32: 7,
64: 3,
128: 3}
nvme0n1.ioworker(io_size=iosz_distribution, #L16
distribution = distribution,
lba_random=True,
read_percentage=0,
ptype=0xbeef, pvalue=100,
time=10).start().close()
- L2. 将整个LBA空间等分为100个子区间,把10000个IO分配到这100个子区间。通过一个长度为100的List来定义这个分配。ioworker会按照这个比列,在不同的子区间产生对应数量的IO。
- L3. 定义IO的不同大小,以及每个大小的IO占据的百分比。通过一个dict来定义这些信息,key是IO的大小,对应的value是产生IO数量的百分比。
- L16. 上面这两个参数的定义遵循了JEDEC的要求,让ioworker产生相应的workload。
除了enterprise workload,pynvme也可以回放JEDEC提供的master trace:https://www.jedec.org/standards-documents/docs/jesd219a_mt