Alluxio
ProductsLanguageHome
AI-3.5 (stable)
AI-3.5 (stable)
  • 概览
  • 部署Alluxio
    • 资源需求和兼容性
    • 在Kubernetes上安装Alluxio
    • 监控和指标
    • Alluxio 集群操作
    • 系统健康检查和快速恢复
    • 采集集群信息
  • 架构
    • Alluxio 命名空间和底层文件系统命名空间
    • I/O弹性
    • worker管理与一致性哈希
  • 底层存储系统
    • Amazon AWS S3
    • HDFS
    • 阿里云 OSS
    • 腾讯 COS
    • 火山引擎 TOS
    • 谷歌云 GCS
  • Client APIs
    • 基于 FSSpec 的Alluxio Python Filesystem API
    • 基于 FUSE 的 POSIX API
      • Client 写回
    • S3 API
  • 缓存操作
    • 缓存预加载
    • 缓存过滤
    • 缓存驱逐
      • TTL (有效时间)规则
      • 优先级规则
      • 通过命令行释放缓存空间
  • 资源管理
    • 基于目录的集群配额
    • UFS 带宽限制
  • 性能优化
    • 通过副本提高读取吞吐量
    • 读取大文件
    • 元数据列表
    • 数据预拉取
    • 写入临时文件
  • 安全
    • TLS 支持
  • 性能基准测试
    • Fio 测试概览
    • MLPerf Storage 基准测试
    • COSBench 性能基准测试
  • 参考
    • 用户命令行接口
    • 指标
    • S3 API 的使用
    • 第三方授权
  • 版本发布说明
Powered by GitBook
On this page
  • Fio 测试概览
  • 测试结果摘要
  • 单个Worker 和Client 吞吐量(256k大小的数据块)
  • 单个Worker 和Client IOPS(4k大小的数据块)
  • 测试详情
  • 测试环境
  • 单个worker 和Client测试
  • 附录 - Alluxio 配置
  • 集群配置("alluxio-site.properties)
  • JVM 选项(alluxio-env.sh)
  • Fuse 挂载选项
  1. 性能基准测试

Fio 测试概览

Fio 测试概览

Fio(Flexible I/O Tester)是一款功能强大的开源工具,用于对存储系统的性能进行基准测试。 它支持各种 I/O 操作,包括顺序和随机读/写,同时支持高度自定义的工作负载。 Fio 可跨平台,在 Linux、Windows 和 macOS 系统上运行,并提供诸如IOPS、带宽和延迟等详细的性能指标。

本页文档展示Alluxio 的 fio 测试结果。测试案例可应用于其他存储系统。

测试结果摘要

单个Worker 和Client 吞吐量(256k大小的数据块)

带宽/线程
单线程
32线程

顺序读

2182 MB/s

8580 MB/s

随机读

148 MB/s

7869 MB/s

单个Worker 和Client IOPS(4k大小的数据块)

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

顺序读

55.9k

244k

179k

随机读

1.6k

70.1k

162k

  • 缓存数据的性能

测试详情

测试环境

所有实例均位于 AWS 的同一可用区域。

Alluxio Worker

  • 由8个nvme固态硬盘组成的 Raid 0(通过 mdadm 命令创建)

  • 100Gbps 网络带宽

  • Ubuntu 24.04

  • 一个 Alluxio worker进程

  • 一个 ETCD 节点

Alluxio Client

  • 100Gbps 网络带宽

  • Ubuntu 24.04

  • Fuse 3.16.2

  • 一个 Alluxio FUSE 进程

单个worker 和Client测试

此场景测试的是单个 100GB 大文件的读取性能。 测试中仅涉及 1 个client和 1 个worker。

安装 fio

测试准备

将一个100GB文件放入UFS。 在此基准测试中,我们使用与 Worker 和client位于同一区域的 S3 桶。

顺序读

在 Alluxio client 上运行以下命令:

fio -iodepth=1 -rw=read -ioengine=libaio -bs=<block_size> -numjobs=<numjobs> -group_reporting -size=100G -filename=/mnt/alluxio/100gb -name=read_test --readonly -direct=1 --runtime=60

numjobs参数指定执行读取并发数。在此基准测试中,numjobs设置为1、32或128。 bs 参数指定测试中使用的数据块大小。我们使用 256k 测试吞吐量,使用 4k 测试 IOPS。

随机读

与热顺序读相同,但参数 rw 改为 randread。

fio -iodepth=1 -rw=randread -ioengine=libaio -bs=<block_size> -numjobs=<numjobs> -group_reporting -size=100G -filename=/mnt/alluxio/100gb -name=read_test --readonly -direct=1 --runtime=60

附录 - Alluxio 配置

集群配置("alluxio-site.properties)

alluxio.master.hostname=localhost
alluxio.master.journal.type=NOOP
alluxio.security.authorization.permission.enabled=false
alluxio.worker.membership.manager.type=ETCD
alluxio.mount.table.source=ETCD
alluxio.etcd.endpoints=<endpoints>
alluxio.client.list.status.from.ufs.enabled=false
alluxio.worker.page.store.sizes=2TB
alluxio.worker.page.store.page.size=4M
alluxio.worker.page.store.dirs=/data1/worker
alluxio.user.metadata.cache.max.size=2000000
alluxio.dora.client.ufs.fallback.enabled=false
alluxio.user.position.reader.streaming.async.prefetch.thread=256

JVM 选项(alluxio-env.sh)

ALLUXIO_WORKER_JAVA_OPTS="$ALLUXIO_WORKER_JAVA_OPTS -Xmx24G -Xmx24G -XX:+UseG1GC"
ALLUXIO_FUSE_JAVA_OPTS="$ALLUXIO_FUSE_JAVA_OPTS -Xms48G -Xmx48G -XX:MaxDirectMemorySize=24g  -XX:+UseG1GC"

Fuse 挂载选项

-max_background=256 -max_idle_threads=256 -entry_timeout=60 -attr_timeout=60

Last updated 3 months ago

1个实例

1 个 实例

Fio 可以通过 yum 安装:sudo yum install fio。 可以在其 上找到其他下载位置。

i3en.metal
c5n.metal
github