首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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%。

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230110A022YQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券