Red Hat Training

A Red Hat training course is available for RHEL 8

4.8. 用于使用 fio 测试 VDO 性能的选项

VDO 测试使用 fio 工具来整合生成具有可重复特征的数据。在测试中,需要以下 fio 选项来模拟真实世界的工作负载:

表 4.1. 使用的 fio 选项

参数描述测试中使用的值

--size

fio 按作业发送给目标的数据量。

另请参阅 --numjobs 选项。

100 GiB

--bs

fio 生成的每个读写请求的块大小。

红帽建议使用 4 KiB 块大小匹配 4 KiB 默认 VDO。

4k

--numjobs

fio 为基准所创建的作业量。

每个作业发送由 --size 选项指定的数据量。第一个作业将数据发送到 --offset 选项指定的偏移处的设备。除非提供了 --offset_increment 选项,否则后续作业将覆盖磁盘的同一区域,这会使每个作业从上一个作业在该值开始的位置偏移。

为了在闪存磁盘(SSD)上达到峰值性能,红帽建议至少有两个作业。一个作业通常足以饱和旋转型磁盘(HDD)吞吐量。

1 代表 HDD,2 代表 SSD

--thread

指示 fio 作业在线程中运行,而不是 fork ,这可以通过限制上下文切换来提供更好的性能。

none

--ioengine

fio 用于基准测试的 I/O 引擎。

红帽测试使用名为 libaio 的异步非缓冲引擎测试一个或多个进程同时进行随机请求的工作负载。libaio 引擎可让单个线程在检索任何数据之前异步发出多个请求。这限制了同步引擎如果许多线程提供请求时所需的上下文切换数。

libaio

--direct

该选项允许提交到该设备的请求绕过内核页面缓存。

您必须将 libaio 引擎与 --direct 选项一起使用。否则,内核将同步 API 用于所有 I/O 请求。

1(libaio)

--iodepth

任意时刻的 I/O 缓冲数量。

高的值通常会提高性能,特别是用于随机读取和写入时。高值可确保控制器始终具有批处理请求。但是,设置这个值太大(通常大于 1K)可能会导致不必要的延迟。

红帽建议 128 到 512 之间的值。最终的值会是一个折中的选择,它取决于您的应用程序如何容忍延迟。

至少 128

--iodepth_batch_submit

当 I/O 深度缓冲池开始为空时创建的 I/O 请求数目。

这个选项限制任务从 I/O 操作切换为缓冲创建。

16

--iodepth_batch_complete

提交批处理前需要完成的 I/O 操作数目。

这个选项限制任务从 I/O 操作切换为缓冲创建。

16

--gtod_reduce

禁用日常调用来计算延迟。

如果启用,这个设置会降低吞吐量。启用此选项,除非您需要测量延迟。

1