
RustFS 里程碑版本发布,性能提升 100%,PUT 全面超越 MinIO
对象存储圈子里,"用 Rust 重写"的项目不少,但能拿出硬碰硬 benchmark 的屈指可数。RustFS 的 1.0.0-beta.10 这回就把话挑明了:在它测过的每一个对象尺寸上,PUT 吞吐压过了 MinIO;GET 小文件更是头一回翻盘。这篇把数字拆开,看看到底"成"在哪。
数字来自官方 Beta.10 benchmark:Azure 4×4 盘、warp、64 并发、5 分钟;MinIO 对照 RELEASE.2026-06-06。
PUT:全尺寸反超,小对象最猛
-
1/4/10KiB:RustFS ~2150 ops vs MinIO ~1075,2.0 倍。
-
100KiB:1850 vs 712(2.6 倍);1MiB:1017 vs 470(2.17 倍);4MiB:652 vs 229(2.85 倍)。
-
16MiB / 32MiB 仍领先,比值收敛到 1.05x / 1.31x。
结论很直白:小对象 PUT 是 RustFS 最能打的区间,而小文件写入恰恰是大多数对象存储的命门------日志、事件流、IoT 上报、缩略图,全压在这。如果你的写负载是这个形状,这一版基本就是对着你的痛点打的。
GET:小文件首超,大文件也赢,只在窄带待追
-
小文件(1--16KiB):12409/12071/11556/11239 vs 11938/11769/11009/10963,1.03--1.05x 稳定反超。
-
4MiB 及以上:4MiB 1.26x、16MiB 1.18x、32MiB 1.13x,再度领先。
-
唯一还落后的,是 32KiB(0.94x)、100KiB(0.72x)和 1MiB(0.23x) 这一小段中尺寸带。
说人话:GET 的"全面超越"目前成立在小文件和大文件两端,中间几百 KiB 到 1MiB 这一窄带 MinIO 还略快。但注意------这带在 beta.8 里更惨,且 beta.8→beta.10 的 GET 整体接近翻倍(下文),收敛的势头很明显。一个 beta 版本能把差距压到这种程度,后面追平只是时间问题。
beta.8 → beta.10:GET 近翻倍,大文件 GET 不再崩
-
GET 平均 +100%(1KiB +102.6%、4KiB +107.1%);更关键的是 16MiB / 32MiB 的 GET 在 beta.8 是 ERROR(压测直接挂),beta.10 稳稳跑完。
-
PUT 平均 +40% 以上;1MiB PUT 从 293 飙到 1017(+247%)。
对一个还在 beta 的项目,一个月把 GET 干到翻倍、把崩溃的大文件路径修通,这个迭代密度本身就值得高看一眼。
想自己验?骨架在这
bash
# RustFS 4 节点分布式纠删码
export RUSTFS_ACCESS_KEY=rustfstest
export RUSTFS_SECRET_KEY=rustfstest
export RUSTFS_VOLUMES="http://rustfs-node{1...4}:9000/data/rustfs{1...4}/mnmd"
export RUSTFS_ADDRESS=":9000"
rustfs server
# warp 混合负载(两端同样的尺寸清单才可比)
warp mixed --host=http://rustfs-node1:9000 \
--access-key=rustfstest --secret-key=rustfstest \
--duration=5m --concurrent=64 \
--obj.size=1KiB,4KiB,16KiB,1MiB,4MiB,16MiB,32MiB
一句话判断
小文件写入为主 → RustFS Beta.10 现在就是更优选,PUT 优势直接打在你的痛点上。读集中在 1MiB 附近 → 暂时 MinIO 还快一点,但差距在快速缩小,且项目迭代凶猛。一个 beta 就能在硬指标上反超老牌,这本身就说明问题。
源码与 issue:github.com/rustfs/rustfs。