Alluxio
ProductsLanguageHome
AI-3.6 (stable)
AI-3.6 (stable)
  • 概览
    • Alluxio 命名空间和底层文件系统
    • worker管理与一致性哈希
    • 多租户和统一管理
    • I/O弹性
  • 部署Alluxio
    • 资源需求和兼容性
    • 安装
      • 在Kubernetes上安装Alluxio
      • 镜像管理
      • 高级配置
      • 许可证
    • 监控和指标
    • 管理控制台
      • 部署
      • 导航控制台
      • 用户角色与访问控制
    • 集群管理
    • 系统健康检查和快速恢复
    • 诊断快照
  • 底层存储系统
    • Amazon AWS S3
    • Azure Blob Store
    • HDFS
    • 阿里云 OSS
    • 腾讯 COS
    • 火山引擎 TOS
    • 谷歌云 GCS
    • 百度智能云对象存储 BOS
    • 网络附加存储 NAS
  • 数据访问
    • 通过 FUSE( POSIX API)访问
      • Client 写回
      • 客户端虚拟路径映射
    • 通过S3 API访问
    • 通过 PythonSDK/FSSpec 访问
    • UFS 带宽限制器
    • 高可用性数据访问
      • 多副本
      • 多可用区(AZ)
    • 性能优化
      • 文件读取
      • 写入文件
      • 元数据列表
  • 缓存管理
    • 缓存加载
    • 缓存过滤策略
    • 缓存驱逐
      • 通过TTL (有效时间)策略自动驱逐缓存
      • 优先级规则
      • 通过Free命令手动驱逐
    • 过期缓存清理
    • 缓存配额
  • 性能基准测试
    • Fio (POSIX)基准
    • MLPerf Storage 基准测试
    • COSBench (S3) 性能基准测试
  • 安全
    • TLS 支持
  • 参考
    • 用户命令行接口
    • 指标
    • REST API
    • 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 (POSIX)基准

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

  • 1个i3en.metal实例

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

  • 100Gbps 网络带宽

  • Ubuntu 24.04

  • 一个 Alluxio worker进程

  • 一个 ETCD 节点

Alluxio Client

  • 1 个c5n.metal 实例

  • 100Gbps 网络带宽

  • Ubuntu 24.04

  • Fuse 3.16.2

  • 一个 Alluxio FUSE 进程

单个worker 和Client测试

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

安装 fio

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

测试准备

将一个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 11 days ago