31.2. 测试环境准备
在评估 VDO 前,务必要考虑主机系统配置、VDO 配置以及测试过程中使用的工作负载。在数据优化(空间效率)和性能(带宽和延迟)方面,这些选择都会影响基准测试。以下几节中列出了开发测试计划时应考虑的项目。
31.2.1. 系统配置
- 可用 CPU 内核数和类型。这可以通过使用
taskset
实用程序来控制。 - 可用内存和总安装内存.
- 配置存储设备。
- Linux 内核版本.请注意,Red Hat Enterprise Linux 7 只提供一个 Linux 内核版本。
- 安装了软件包。
31.2.2. VDO 配置
- 分区方案
- VDO 卷中使用的文件系统
- 分配给 VDO 卷的物理存储大小
- 创建的逻辑卷的大小
- 稀疏或高密度索引
- 内存大小的 UDS Index
- VDO 的线程配置
31.2.3. 工作负载
- 生成测试数据的工具类型
- 并发客户端数
- 写入数据中重复的 4 KB 块的数量
- 读和写的特征
- 工作集大小
可能需要在某些测试之间重新创建 VDO 卷,以确保每个测试都在同一磁盘环境中执行。在测试部分阅读有关此内容的更多信息。
31.2.4. 支持的系统配置
红帽已在 Intel 64 构架中使用 Red Hat Enterprise Linux 7 测试了 VDO。
有关 VDO 的系统要求,请参阅 第 30.2 节 “系统要求”。
在评估 VDO 时,建议使用以下工具:
- 灵活的 I/O Tester 版本 2.08 或更高版本;可从 fio 软件包获得
sysstat
版本 8.1.2-2 或更高版本;可从 sysstat 软件包获得
31.2.5. 预测试系统准备
这部分论述了如何配置系统设置以便在评估过程中获得最佳性能。在任何特定测试中建立的隐式范围之外测试可能会导致因为正常结果导致测试时间丢失。例如,本指南描述了一个测试,它对 100 GB 地址范围执行随机读取。要测试一组 500 GB,为 VDO 块映射缓存分配的 DRAM 数量应该相应地增加。
- 系统配置
- 确定您的 CPU 在最高级别的性能设置中运行。
- 如果使用 BIOS 配置或 Linux
cpupower
工具,禁用频率扩展。 - 如果可能达到最大吞吐量,请启用 Turbo 模式。turbo 模式在测试结果中引入了一些差异,但性能将达到或超过没有 Turbo 的测试。
- Linux 配置
- 对于基于磁盘的解决方案,Linux 提供多个 I/O 调度程序算法,以在多个读写请求排队时进行处理。默认情况下,Red Hat Enterprise Linux 使用 CFQ (完全公平排队)调度程序,它以改进旋转磁盘(硬磁盘)访问的方式排列请求。我们建议将死线调度程序用于旋转磁盘,发现它在红帽实验室测试中提供更好的吞吐量和延迟。按如下方式更改设备设置:
# echo "deadline" > /sys/block/device/queue/scheduler
- 对于基于闪存的解决方案,
noop
调度程序演示了红帽实验室测试中卓越的随机访问吞吐量和延迟。按如下方式更改设备设置:# echo "noop" > /sys/block/device/queue/scheduler
- 存储设备配置文件系统(ext4、XFS 等)可能会对性能有唯一影响;它们通常会降低性能,从而更难以隔离 VDO 对结果的影响。如果合理,我们建议测量原始块设备的性能。如果无法做到这一点,请使用目标实施中使用的文件系统格式化设备。
31.2.6. VDO 内部结构
我们相信,对 VDO 机制的总体了解对于完整且成功评估至关重要。当测试计划中希望开发测试计划或设计新的 stimuli 以模拟特定应用程序或用例时,这种理解尤为重要。如需更多信息,请参阅 第 30 章 VDO 集成。
红帽测试计划被编写为使用默认 VDO 配置进行操作。在开发新测试时,必须调整下一节中列出的一些 VDO 参数。
31.2.7. VDO 优化
高负载
或许,生成最佳性能的最重要策略是确定最佳 I/O 队列深度,这是代表存储系统上负载的特征。大多数现代存储系统以高 I/O 深度进行最佳性能。VDO 的性能最好与多个并发请求一起演示。
同步与.异步写策略
VDO 可使用两个写入策略之一进行操作,即同步或异步。默认情况下,VDO 会自动为您的底层存储设备选择适当的写入策略。
测试性能时,您需要知道选择哪个写入策略 VDO。以下命令显示 VDO 卷的写入策略:
# vdo status --name=my_vdo
有关写入策略的详情,请参考 “VDO 写策略概述”一节 和 第 30.4.2 节 “选择 VDO 写入模式”。
元数据缓存
VDO 维护从逻辑块地址到物理块地址的映射表,VDO 在访问任何特定块时必须查找相关的映射。默认情况下,VDO 在 DRAM 中分配 128 MB 的元数据缓存,以支持一次高效地访问 100 GB 的逻辑空间。测试计划生成适合此配置选项的工作负载。
大于配置的缓存大小的工作集合将需要额外的 I/O 来服务请求,在这种情况下会出现性能下降。如果有额外的内存可用,则块映射缓存应该更大。如果工作集大于内存中可以保存的块映射缓存,则可能需要进行额外的 I/O 悬停的头来查找相关的块映射页面。
VDO 多线程配置
必须调整 VDO 的线程配置才能获得最佳性能。有关在创建 VDO 卷时如何修改这些设置的信息,请参阅 VDO 集成指南。请联系您的红帽销售工程师,讨论如何设计测试以查找最佳设置。
数据内容
由于 VDO 执行重复数据删除和压缩,因此必须选择测试数据集来有效地处理这些功能。
31.2.8. 测试读性能的特别注意事项
在测试读取性能时,必须考虑以下因素:
- 如果 从未写入 4 KB 块,VDO 不会对存储执行 I/O,并将立即使用零块响应。
- 如果 写入了 4 KB 块但包含所有零,VDO 不会对存储执行 I/O,并将立即使用零块响应。
当没有可读取数据时,读取性能会非常快。这使得读取测试需要预先填充实际数据。
31.2.9. cross Talk
要防止一个测试影响另一个测试的结果,建议为每个测试的每个迭代创建一个新的 VDO 卷。