Skip to main content

生产集群性能参考

集群压测性能(TCP)

JuiceFS 在 GCP 上 100 节点聚合压测 I/O 吞吐

服务节点规格:32c | 128G | 100Gbps * 100 台聚合测试

软件系统:Ubuntu 22.04,JuiceFS 5.2

提示

JuiceFS 在 100 台缓存节点上压测结果:1.23 TB/s,带宽利用率 98%

我们在 GCP 上申请了 100 台 32 核 128G 内存以及 100Gbps 网卡的虚拟机,每台都带上 2 块 3.84TiB 的 NVMe 盘。为了打满 100Gbps 的网卡带宽不让磁盘成为瓶颈,我们每台机器混合了 50% 的内存作为缓存池,这样 2 块 NVMe 盘 + 内存就可以稳定提供打满节点 100Gbps 的上行带宽的能力,不让存储成为单台缓存节点的瓶颈。

同时这 100 台节点也作为业务消费节点来使用分布式缓存(即点对点模式),证实了在 GCP 上(100Gbps 以太网全双工网卡),JuiceFS 可以做到几乎打满每台机器的 100Gbps 上下行带宽读写。这归功于:

  • 企业版的分布式缓存使用一致性哈希算法,尽可能均衡数据块到所有节点上,分散热点。
  • 优化零拷贝和多路复用算法,有效降低额外吞吐折损,以及降低 CPU 消耗。

集群压测性能(RDMA)

JuiceFS 5.3 引入了 RDMA 支持,

缓存节点:

128C|500G|IB 400Gbps * 4|10 块 NVMe 的磁盘 * 3 台,理论最高提供 300GB/s 的分布式缓存吞吐

客户端节点:

128C|500G|IB 400Gbps * 2|带宽充裕但由于 FUSE 限制,单台最多获得 60GB/s 的下载速度,需要多机打满服务端发送带宽

顺序读

FIO 多并发顺序读命令:

fio --name=seq --directory=/jfs --filename_format=file.\$jobnum.dat --size=1G --bs=1M --rw=read --numjobs=36 --iodepth=1 --ioengine=libaio --direct=1 --time_based --runtime=2000 --group_reporting

RDMA 顺序读吞吐图表

说明:

  • RDMA 网卡利用率(平均)高达 96%,在总共 400Gbps*6 的聚合带宽条件下,提供了 288GB/s 的平均带宽。(*图 1)
  • FUSE 客户端目前 RDMA 能测到的单机吞吐极值为 60GB/s,相比 TCP 的 25GB/s 提升了一倍有余,但再加压且哪怕两个挂载点也无法继续提升总吞吐
  • 显示聚合吞吐值为全部测试的平均值,如 6 节点客户端最高到过 300 多 GB/s,带宽利用率超过了 100%,但后台监控发现此时的缓存节点总发送带宽也超过了 400Gbps*2,所以取「平均」以消除网络波动也最贴近业务实感(*图 2)
  • 缓存服务端介质为本地 10*NVMe+1*系统盘,单节点满负荷时可以提供最高 91GB/s 的读吞吐(而纯内存只有 48GB/s),基本可以让两块 400Gbps 的网卡打满。(*图 3)
  • RDMA 客户端利用率在 25 核左右徘徊(*图 4)

图 1:平均聚合带宽

图 1:FUSE 客户端单机吞吐测试结果

图 2:业务流量示意图

图 2:Remote Cache 业务流量示意图

图 3:缓存节点磁盘读取流量

图 3:缓存节点磁盘读取流量

图 4:RDMA 客户端 CPU 利用率

图 4:RDMA 客户端 CPU 利用率

客户实际生产表现性能

下方性能数据是客户真实业务运行带来的 JuiceFS 表现,不代表极限性能。

某智驾客户

某智驾客户生产环境 I/O 吞吐(读峰值 621 GB/s)

某智驾客户生产环境聚合 IOPS(峰值 5.06M)

某智驾客户分布式缓存出向带宽(1.02 TB/s)


生产环境性能全景

智驾企业生产环境中 JuiceFS 的性能表现,生产环境运行 JuiceFS 企业版已达 12 个月以上。

系统规模

信息
  • 文件系统总容量:30 PB
  • 文件数量(inodes):4 亿
  • 客户端计算节点:7,480 台
  • 分布式缓存节点:135 台
  • 分布式缓存容量:4.7 PB

核心性能指标

提示
  • 聚合 I/O 吞吐621 GB/s聚合 IOPS5.06 M;读多写少,以大块读为主
  • 分布式缓存出向带宽1.02 TB/s

某 LLM 训练客户

LLM 企业使用 JuiceFS 支撑预训练 + 后训练全流程业务。

系统规模

信息
  • 数据总量:10+ PiB
  • 文件数量:2 亿+
  • 平均文件大小:60 MiB
  • 客户端节点:883 台

核心性能指标

提示
  • 元数据 QPS:最高 7.45 万/s,平均响应时间仅 560 µs
  • 整体读吞吐:最高 186 GB/s,均值 6.15 GB/s
  • 整体写吞吐:最高 19.4 GB/s,均值 1.21 GB/s
  • 缓存集群(Remote Cache)读吞吐:最高 325 GB/s,均值 18.8 GB/s

某 AI 模型训练客户

该客户使用 JuiceFS 主要是利用分布式缓存加速训练过程。准备了 139 台机器,每台提供 52TB 缓存容量及 40Gbps 的 IP 网卡。理论最大应可支持 695GB/s 的吞吐量。下图所见基本跑满了:

缓存客户端聚合从缓存池里读取的吞吐

上图表示缓存客户端聚合从缓存池里读取的吞吐

实际业务读取存储获得的吞吐量

上图表示实际业务读取存储获得的吞吐量

得益于智能预读机制,缓存集群的读出流量会高于业务实际消费的有效数据量,这是预读命中后的正常现象。相比直读对象存储,缓存读吞吐提升数十倍,显著加速了模型训练的数据读取效率,符合客户使用预期。