ZFS中ZIL和L2ARC 性能实测


前言

        随着ZFS 不断的普及,网上对于ZIL 和L2ARC 是否使用,以及使用效果如何一直没有直观的表现,今天就拿实际测试来看下ZIL 和L2ARC 是否能给ZFS 带来性能提升。


一、测试环境

        操作系统:TrueNAS-SCALE-22.02

        CPU:INTEL I3-2100T 

        内存:1*8G DDR1333 

        主板:ASUS H61

        硬盘:2*SATA 1TB 机械(SATA 3G) ,1* NVME 傲腾16G (PCIE 3.0)1*SATA 160G(系统盘)

        说明:使用这套较老的配置作为测试平台,可以直观的看到速度提升的效果。

二、测试步骤

1.测试工具及方法

测试使用TrueNas 自带的fio 工具进行测试,测试用到的命令如下:

#随机写测试
fio --filename=test --sync=1 --rw=randwrite --bs=1m --numjobs=1 --iodepth=4 --group_reporting --name=test --filesize=10G --runtime=300
#随机读测试
fio --filename=test --sync=1 --rw=randread --bs=1m --numjobs=1 --iodepth=4 --group_reporting --name=test --filesize=10G --runtime=300
#顺序写
fio --filename=test --sync=1 --rw=write --bs=1m --numjobs=1 --iodepth=4 --group_reporting --name=test --filesize=10G --runtime=300
#顺序读
fio --filename=test --sync=1 --rw=read --bs=1m --numjobs=1 --iodepth=4 --group_reporting --name=test --filesize=10G --runtime=300

测试方法:使用TrueNas 将两块1TB 容量的SATA硬盘 组成ZFS mirror Pool(所有参数为默认),通过SSH 连接TrueNAS并执行fio的测试命令。将傲腾16G 单独作为ZIL 或者L2ARC设备进行测试

2.测试数据

写入测试
随机写(1) 随机写(2) 顺序写(1) 顺序写(2)
BW(MB/S) IOPS BW(MB/S) IOPS BW(MB/S) IOPS BW(MB/S) IOPS
无ZIL 21.4 21 21 21 20.6 20 21.3 21
有ZIL 99 99 99.4 99 99.5 99 99.8 99

读取测试
随机读(1) 随机读(2) 顺序读(1) 顺序读(1)
BW(MB/S) IOPS BW(MB/S) IOPS BW(MB/S) IOPS BW(MB/S) IOPS
无CACHE 74.3 74 67.2 67 263 263 269 269
有CACHE 100 100 94.3 94 268 267 269 268

备注说明:由于使用的是H61主板,SATA总想最高支持3G,即实际传输速度最高300MB,所以顺序读的结果已经接近SATA 总线的最大速度(考虑到信号传输损失等)。


总结

从测试结果看:

        写入:不论是随机写还是顺序写使用NVME设备的 ZIL 都带来了较大的性能提升;
        读取:使用NVME的CACHE 对随机读有提升,但是对顺序读几乎没有带来提升;

结论:使用基于NVME设备的ZIL 和L2ARC 确实可以给ZFS 带来性能提升(尤其是老平台)

猜你喜欢

转载自blog.csdn.net/nikolay/article/details/126938638