当前位置: 首页 > news >正文

3000 台 JuiceFS Windows 客户端性能评估

近期,我们在云端渲染场景中,对 100 至 3000 节点的 JuiceFS Windows 客户端进行了性能测试。测试内容为渲染前置任务,即在渲染任务之前执行所有存储相关操作。

与实际使用场景相比,本次测试采用了更为苛刻的条件,使用了大量小文件的数据进行测试。任务要求 1000 台机器平均时间在 30分钟内完成。客户原来使用SMB 服务,随着渲染机器数量增加,网络带宽、负载均衡等因素会降低性能表现,在 2000 台以上就基本无法使用。而 JuiceFS 测试结果在 3000 台并发渲染任务中依旧性能平稳,平均执行时间为 22 分 22 秒。

目前,JuiceFS Windows 客户端 Beta 版本已集成于社区版 v1.3 和 企业版 v5.2 中,具体优化历程可参考:首个 Windows Beta 版的优化之路。希望有需求的用户积极尝试并进行测试,并欢迎大家在使用过程中反馈问题和改进建议。

01 Windows 渲染场景用例与资源配置

渲染场景测试用例文件大小分布

此次测试样本共包含 65,113 个文件,其中大小在 128KB 以下的文件占比为 95.77%,相比日常的渲染场景,本次测试特别增加了小文件的占比,以更严苛的条件进行测试。

  • ≤1K: 11,053 个文件
  • 1K~4K: 1,804 个文件
  • 4K~128K: 49,504 个文件
  • 128K~1M: 1,675 个文件
  • 1>1M: 1,077 个文件

各组件硬件配置

image

部署方案

在此次测试中,我们使用了 JuiceFS 企业版,企业版采用了自研的高性能元数据引擎,并提供了分布式缓存支持,关于分布式缓存可参考文章:从资源闲置到弹性高吞吐,JuiceFS 如何构建 70GB/s 吞吐的缓存池。

image

为了获得最佳性能,我们将 35GB 的样本完全预热到分布式缓存中。部署架构图如下:

image

JuiceFS 挂载参数设置

缓存服务器挂载参数:

juicefs mount jfs /jfs-mem \--buffer-size=4096 \--cache-dir=/dev/shm \--cache-group=cache-mem \--cache-size=122400 \--free-space-ratio=0.02 

Windows 客户端挂载参数:

juicefs.exe mount jfs J: --buffer-size=4096 --cache-group=cache-mem --no-sharing --console-url http://console:8080 --enable-kernel-cache

注意:

  • --console-url:指定控制台的URL,第一次挂载或者新建文件系统后须输入。
  • --enable-kernel-cache:启用 WinFSP 内核缓存:默认是不启用,大量随机 512 字节读取时性能比较差,

建议打开,请求就会聚合成 4K。

02 测试结果

数据存储在 JuiceFS 中,100 至 3000 台远端 windows 客户端读取这些数据时,渲染前置存储读取任务的耗时如下表所示。

image

从上面的数据中,我们可以看到:

  • JuiceFS 能够在不同规模的渲染前置存储任务中保持高效的性能,随着设备数量的增加,系统的吞吐量和 IOPS 性能提升。
  • 当设备规模达到 3000 台时,JuiceFS 能够稳定承受每秒 127 万次的元数据请求,分布式缓存吞吐14.7GB/s,Windows 客户端聚合吞吐达到 23.8GB/s,渲染任务完成耗时平均 22 分钟 22 秒。

03 总结

该测试场景基于实际渲染环境设计,但具有更高的负载与性能要求,旨在验证 JuiceFS 在渲染任务中的数据处理能力。测试内容涵盖 JuiceFS 的整体产品能力,包括 Windows 客户端、元数据服务器软件和分布式缓存集群软件。测试结果表明,JuiceFS 能够支持至少 3000 台 Windows 设备同时进行渲染前置存储相关读取的任务,平均完成时间为 22 分钟 22 秒,最大任务完成时间在 34 分钟以内,显示了 JuiceFS 在大多数渲染场景中能够有效满足实际业务对存储的需求。

http://www.sczhlp.com/news/6760/

相关文章:

  • 保护器各功能模块
  • python 模块导入
  • 恋上Manim之Python安装
  • 【Java 温故而知新系列】基础知识-06 深入理解String类
  • C++ 中创建目录,判断目,文件
  • 哪些离线语音芯片适用于家电设备
  • 题2
  • 中国 Apache 项目 OpenRank 排行榜 Top 20:白鲸开源深度参与两大上榜项目
  • 粒子模拟效率提升50%!StokeMX 2.6安装激活教程全解锁
  • 电学笔记
  • DM数据库排查
  • 【IEEE出版】2025年国际膜计算会议暨人工智能与智能制造国际研讨会
  • 深入底层:如何优雅部署 SeaTunnel 分离集群到 Kubernetes
  • Atcoder 1200-1599 水题笔记
  • 【CAPL】常见报错和解决的tips
  • 使用trl-qlora微调qwen2.5
  • Java文件写入与编码、字节数组、字符集、字符编解码 一文打通!
  • 代码随想录算法训练营第一天(数组篇)|Leetcode704二分查找,Leetcode27移除元素,leetcode977有序数组的平方
  • vscode 基本配置
  • [快速阅读十一] 伊拉克团队的TAGC(低光增强效果)算法实现。
  • 基于GoogleNet深度学习网络和GEI步态能量提取的步态识别算法matlab仿真,数据库采用CASIA库
  • Linux网络:多路转接 epoll - 详解
  • LAS平台Vibe Data Processing:AI驱动的数据处理新范式
  • 坏的代码如何坏
  • 硅空位中心实现量子网络化的新突破
  • linux gpio-leds 作为硬盘指示灯
  • Goframe框架SetFileServerEnabled关闭静态服务不生效
  • 线段树算法:结合水果成篮的初步理解
  • 批量生成多个excel文件数据
  • Python多进程写入文件