OpenZFS 实现"uncached prefetch",显著提升性能


OpenZFS 近日合并了一个名为"uncached prefetch"的 PR,据称显著优化了性能。

提交 PR 的开发者介绍道,这项变化为 ARC(自适应替换缓存)引入了"uncacheable buffer"——它被传递给 arc_read() 和 arc_write(),并存储在 ARC header 中。当 remove_reference() 删除 ARC header 上的最后一个引用时,它可以立即对其进行销毁,或者如果它被标记为预取,则将其置于新的 arc_uncached 状态。该状态每秒被扫描一次,寻找不需要读取的 stale buffer(在这种情况下,它们会立即被驱逐)。

通过启用预取 (prefetch) 和避免内存复制的组合,这项变化提升了从宽 NVMe 池中进行连续单线程读取的速度(从 2049 到 3932 MiB/s)。在写的过程中,分析工具显示在 3653 MiB/s 的相同吞吐量下,未暂停 (unhalted) 的 CPU 周期减少了 22%。

另一位开发者分享了他以该项变化为特征的基准测试结果,由此可见性能优化明显:

更多细节查看 PR 描述。


相關推薦

2022-10-28

近日在旧金山举行了一年一度的 OpenZFS 开发者峰会。会议主题包括介绍 OpenZFS 现状、亚马逊 AWS 如何大规模使用 OpenZFS,以及开源开发者目前正在解决的一些优化和改进等内容。 从演讲主题来看,此次峰会有不少关于优化 OpenZF

2022-12-03

修复接收快照后设置 large_block 功能 #13699 #13782 修复 dbuf_prefetch_indirect_done() 中的 NULL 指针取消引用 # 14210 Lua:修复 lua_strx2number() 中的错误位移位 #14204 修复 clang 13 编译错误 #13551 删除最终的 K&R 定义 #13447 模块:zfs:vdev

2023-10-17

ARC、支持硬件加速的 SHA2 校验和、Zstd 提前终止、改进 prefetch 以及其他一般性能优化。 详情查看 Release Notes。

2023-07-06

OpenZFS 近日合并了名为"Block Cloning"的 PR。 据介绍,Block Cloning 支持通过仅创建对数据块的附加引用而无需复制数据本身,将文件(或文件块的子集)克隆到另一个(或相同)文件中。Block Cloning 属于快速的手动重复数据删除方

2023-01-23

OpenZFS 2.1.8 已发布,这是开源 ZFS 文件系统实现的最新版本,与现代 Linux 和 FreeBSD 系统兼容。 虽然备受期待的 OpenZFS 3.0 还没有像最初希望的那样在 2022 年实现,但 OpenZFS 2.x 通过修复和其他更新来继续完善这个开源 ZFS 文件

2023-06-08

OpenZFS 2.1.13 已发布,这是开源 ZFS 文件系统实现的最新版本,与现代 Linux 和 FreeBSD 系统兼容。 支持的平台 Linux:与 3.10 - 6.3 内核版本兼容 FreeBSD:兼容从 12.2-RELEASE 开始的版本 变化 修复 Clang 15 编译错误 #13260 #1

2022-06-28

OpenZFS 2.1.5 已发布,这是开源 ZFS 文件系统实现的最新版本,与现代 Linux 和 FreeBSD 系统兼容。 新版本主要是修复错误,此外还包括面向 Linux 5.18 的兼容性更新,这意味着 OpenZFS 已官方支持最新的稳定版 Linux 内核,同时也保留对

2023-09-08

xy 很难优化,因为它们在设计上是通用的,并且可以用来实现更多功能,但也因此出现许多问题。 Speedometer 3 测试表明,部分 Proxy 行为良好、关键路径良好并且被广泛使用,因此 Firefox 决定对其进行优化,使其完全在 JIT 引擎

2023-04-16

OpenZFS 2.1.10 已发布,这是开源 ZFS 文件系统实现的最新版本,与现代 Linux 和 FreeBSD 系统兼容。 OpenZFS 2.1.10 支持最新的 Linux 6.2 系列,扩展了 Linux 内核兼容性。 Linux 6.3 内核将在未来两周左右发布,因此此版本中还有一些早期

2022-10-05

OpenZFS 2.1.6 已发布,这是开源 ZFS 文件系统实现的最新版本,与现代 Linux 和 FreeBSD 系统兼容。 此版本的更新内容主要集中在修复错误,值得注意的变化是扩展对 OpenZFS 内核模块的支持,以兼容较新版本的 Linux 内核。因此,OpenZFS

2023-02-12

(Zstd) v1.5.4 已发布。发布公告称这是一个重大更新版本,显著优化了许多跨场景下的性能,同时引入多项新特性,以及修复错误。 Zstandard 1.5.4 具有许多性能优化/调整功能,“以某种方式累积地使很大一部分安装基础受益”。

2022-09-16

告写道,此版本在性能、数据持久性和可用性方面获得了显著改进。 OpenSearch 项目由 OpenSearch (fork Elasticsearch 7.10.2) 和 OpenSearch Dashboards (fork Kibana 7.10.2) 组成,包括企业安全、告警、机器学习、SQL、索引状态管理等功能。OpenSear

2023-09-22

数据技术都能四世同堂,凭什么开发 30 岁就要被干掉? Next.js 13.5 已发布。Next.js 是一个用于服务器渲染的通用 JavaScript Web 应用程序的小型框架,该框架基于 React、Webpack 和 Babel 构建,为该网站提供了强大的支持。 新版本主

2022-11-01

直在积极开发中;Overstreet 始终致力于将其作为 Btrfs 和 OpenZFS 等的替代品。他一直在修复 Bcachefs 中的错误并处理这个下一代文件系统上的一系列功能工作。此最新状态更新中涵盖的一些项目包括: 一个完全重写的分配器已经