测试 POSIX 性能

Fio (Flexible I/O Tester) 是一款功能强大的开源工具,用于对存储系统的性能进行基准测试。由于 Alluxio 可以使用 FUSE 挂载为符合 POSIX 标准的文件系统,因此 fio 是衡量其读/写 IOPS 和吞吐量的绝佳工具。

本指南将引导您完成如何设置和运行 fio 以对 Alluxio 中缓存的数据进行性能基准测试。

性能亮点

以下结果是在单个 Alluxio 工作节点和单个客户端上实现的,基于下面详述的测试环境。您的结果可能会因您的特定硬件和设置而异。

吞吐量(256k 块大小)

带宽/线程
单线程
32 线程
128 线程

顺序读取

2101MiB/s

9519MiB/s

8089MiB/s

随机读取

202MiB/s

6684MiB/s

8276MiB/s

IOPS(4k 块大小)

IOPS/线程
单线程
32 线程
128 线程

顺序读取

55.9k

253k

192k

随机读取

2.3k

70.1k

162k

测试环境和设置

本指南中使用以下环境生成示例结果。所有实例都位于同一个 AWS 可用区,以最大限度地减少网络延迟。

硬件和软件

  • Alluxio 工作节点:

    • 实例: AWS i3en.metal

    • 存储: 8 个 NVMe SSD,采用 RAID 0 阵列

    • 操作系统: Ubuntu 24.04

  • Alluxio 客户端节点:

    • 实例: AWS c5n.metal

    • 操作系统: Ubuntu 24.04

    • FUSE: 版本 3.16.2 或更高版本

Fio 安装

在客户端节点上,使用适当的包管理器安装 fio。对于基于 RPM 的发行版(如 CentOS),请使用 yum

对于基于 Debian 的发行版(如 Ubuntu),请使用 apt

数据准备

在运行基准测试之前,您需要一个大的测试文件。在本指南中,一个 100GB 的文件被放置在 UFS(同一区域中的 S3 存储桶)中,并完全加载到 Alluxio 缓存中,以确保基准测试衡量的是缓存读取的性能。

运行基准测试

以下命令应在 Alluxio 客户端节点上从 FUSE 挂载点内的目录中运行。

测试顺序读取吞吐量

此测试衡量可以读取大块连续数据的最大速度。它代表了视频流或大文件处理等工作负载。为此测试使用较大的块大小 (bs),例如 256k

测试随机读取 IOPS

此测试衡量每秒可以执行多少次随机读取操作。它代表了数据库或键值存储等工作负载。为此测试使用较小的块大小 (bs),例如 4k

关键 fio 参数:

  • rw: 指定 I/O 模式(read 表示顺序,randread 表示随机)。

  • bs: 每个 I/O 操作的块大小。

  • numjobs: 要运行的并发线程数。

  • filename: FUSE 挂载中测试文件的路径。

  • direct=1: 绕过操作系统页面缓存,以确保您正在衡量 Alluxio FUSE 的性能。

Last updated