CrossPrefetch: Accelerating I/O Prefetching for Modern Storage——论文泛读

news2024/10/6 8:40:35

ASPLOS 2024 Paper 论文阅读笔记整理

问题

目前计算设备和存储设备之间的性能差距仍然很大。因此,主内存缓存和缓冲区被广泛用于操作系统、用户级文件系统[32]和I/O运行时,在隐藏性能差距和减少I/O瓶颈方面发挥关键作用[23,26,30,37]。现有的操作系统缓存和预取设计都是应用程序透明的[21,24,31,33],旨在优化计算和I/O之间的重叠。缓存的有效性在很大程度上取决于底层I/O预取机制的有效性,通过预测即将到来的I/O访问,并及时加载相应的I/O操作。在Linux等操作系统中,预取是通过虚拟文件系统(VFS)层实现的通用预读组件[19]来实现的。

但现有预取设计主要关注提高预测准确性,忽略了跨层协调和预取的有效性,无法从I/O预取中获得更高的性能,也无法充分利用SSD等现代快速存储设备中的可用带宽。

挑战

  • 当前操作系统预取器的有效性低,受限于严格的接口和保守的策略,使得很难有效地利用缓存状态(即缓存中的页面)。readahead、fadvice和madvise等系统调用无法提供预取总字节数等信息,导致预取不足或预取过度。

  • 当前的预取操作面临着严重的并发瓶颈。因为预取和常规I/O操作(如读取)使用相同的数据结构(如Xarray[17]),导致锁争用。当多个线程共享一个文件时,它们会争用文件级锁(如inode读写锁),并由于缺乏缓存感知而冗余地发出预取操作。

  • 现有的操作系统不能有效地协调操作系统和应用程序之间的缓存状态。难以充分利用可用内存容量和I/O带宽资源,导致应用程序性能不佳。

本文方法

本文提出了CrossPrefetch,一种跨层I/O预取机制,可在操作系统和用户级运行时运行。通过在操作系统和运行时之间划分责任来解决限制,最大限度地减少开销,并实现高缓存命中、低锁争用和高I/O性能。

  • 在用户空间和操作系统之间分解和分配任务,以提高预取精度,最大限度地减少不必要的I/O操作,并解决缓存状态可见性难题。操作系统组件(Cross-OS)在操作系统的文件缓存树旁,维护每个inode位图,以评估预取的有效性。通过新的readahead_info系统调用,将信息传递给用户级运行时(Cross-Lib),用于执行预读操作、导出文件的操作系统级缓存位图状态、导出操作系统级遥测。通过这些信息,Cross-Lib优化并减少了预取系统调用,改进专用文件和共享文件的应用程序线程级预取,并实现了预取自定义,绕过复杂的操作系统缓存层修改。

  • 为了增强可扩展性并缓解并发瓶颈,将常规I/O和预取操作的I/O路径隔离。便于通过readahead_info系统调用快速查找缓存状态。为了适应线程共享和对文件区域的非冲突访问,通过范围树采用细粒度索引,使线程能够查询其缓存状态并同时启动通知预取请求。通过轻量级访问模式预测,Cross-Lib根据每个索引节点的缓存状态调整预取请求,从而减少了对过多预取系统调用的需求。

  • 为了最大限度地利用可用内存资源,基于可用空闲内存实施了积极的预取/逐出策略。通过每文件缓存感知,根据可用的空闲内存在主动预取和逐出之间切换,提高了整体性能。

  • Cross-OS允许更大的预取请求,根据可用内存动态调整预取限制,来优化I/O路径,提高系统性能。

实验评估包括微基准、宏基准和真实工作负载,表明CrossPrefetch使I/O吞吐量的性能提高高达1.22x-3.7x。

总结

针对缓存预取,现有方法受限于接口有效性低、存在并发瓶颈、难以协调操作系统和应用程序间缓存状态。本文提出CrossPrefetch,跨层I/O预取机制,在操作系统和用户运行时之间设计跨层堆栈,操作系统向用户运行时提供缓存可见性,用户运行时提供并发和细粒度的预取。包括三个技术:(1)在用户空间和操作系统间分解任务:Cross-OS在文件缓存树旁维护每个inode位图,以评估预取的有效性;Cross-Lib接收信息,执行预读、导出文件的缓存位图状态、导出操作系统级遥测,通过信息优化并减少了预取系统调用。(2)将常规I/O和预取I/O隔离。为了适应线程共享和对文件区域的非冲突访问,通过范围树,使线程能够查询缓存状态,通过轻量级访问模式预测,Cross-Lib根据每个索引节点的缓存状态调整预取请求。(3)通过每文件缓存感知,根据可用的空闲内存在主动预取和逐出之间切换。Cross-OS允许更大的预取请求,根据可用内存动态调整预取限制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1788992.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1. lvs负载均衡

lvs负载均衡 一、集群技术概述1、集群技术类型2、负载均衡技术3、高可用技术 二、负载均衡 LVS1、LVS介绍2、负载均衡策略/算法3、LVS设计模式3.1 NAT模式的注意事项 三、LVS nat模式的实现1、确认后端服务器网关正确2、安装ipvsadm软件3、开启路由转发4、创建虚拟服务5、添加后…

EasyV开发人员的使用说明书

在可视化大屏项目时,开发人员通常需要承担以下任务: 技术实现:根据设计师提供的设计稿,利用前端技术(如HTML、CSS、JavaScript等)和后端技术(根据具体项目需求,可能是Java、Python、…

冯喜运:6.5今日黄金原油行情怎么看及日内操作策略

【黄金消息面分析】:周三(6月5日)亚市早盘,现货黄金窄幅震荡,目前交投于2328.13美元/盎司附近。黄金价格周二下跌超过1%,原因是美元在本周晚些时候美国就业数据公布前趋于稳定,该数据可能为美联…

【数据结构】图论中求最短路径——迪杰斯特拉算法(Dijkstra)、弗洛伊德算法(Floyd)

目录 最短路径 (*)迪杰斯特拉算法(Dijkstra)迪杰斯特拉算法(Dijkstra)的算法原理: 弗洛伊德算法(Floyd)弗洛伊德算法(Floyd)的算法原理:弗洛伊德算法的&#…

Ubuntu server 24 (Linux) 普通用户不能sudo 也不能使用root登录 忘记root密码 修复解决方案

一 普通用户无法sudo,同时也没有其他用户可用 #test用户使用sudo报错,没有权限 testtest:~$ sudo vi /etc/sudoers [sudo] password for test: test is not in the sudoers file. 二 关闭ubuntu 服务器,重新开机 按下ESC 键 1 出现GRUB…

LLM推理加速原理(一)

1.大语言模型的基本结构 transfomer block: 输入--->正则化-->qkv三个矩阵层(映射到三个不同空间中)---->q,k,v之后self attention进行三0合一---->线性映射,正则化。 2.大语言模型的推理 目前主流的语言大模型都采用decoder-only的结构,其推理过程由两部分…

线性代数|机器学习-P2 A的列向量空间

文章目录 1. Ax矩阵的形式2. ACR 矩阵分解2.1 rank1 矩阵分解2.2 rank2 矩阵分解2.3 ACMR,求M 3. Ax 向量 1. Ax矩阵的形式 假设我们有如下矩阵A: A x [ 2 1 3 3 1 4 5 7 12 ] [ x 1 x 2 x 3 ] \begin{equation} Ax\begin{bmatrix} 2&1&3\\\\ 3&1&am…

【Redis数据库百万字详解】数据持久化

文章目录 一、持久化1.1、什么是持久化1.2、持久化方式1.3、RDB优缺点1.4、AOF优缺点 二、RDB持久化触发机制2.1、手动触发2.2、自动触发 三、RDB持久化配置3.1、配置文件3.2、配置查询/设置3.3、禁用持久化3.4、RDB文件恢复 四、RDB持久化案例4.1、手动持久化4.2、自动持久化案…

【计算机网络】对应用层HTTP协议的重点知识的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

超越传统AI 新型多智能体系统MESA,探索效率大幅提升

探索多智能体强化学习的协同元探索 —— MESA 算法深度解读在多智能体强化学习(MARL)的征途中,如何高效探索以发现最优策略一直是研究者们面临的挑战。特别是在稀疏奖励的环境中,这一问题变得更加棘手。《MESA: Cooperative Meta-…

【Vue】v-model在其他表单元素的使用

讲解内容: 常见的表单元素都可以用 v-model 绑定关联 → 快速 获取 或 设置 表单元素的值 它会根据 控件类型 自动选取 正确的方法 来更新元素 输入框 input:text ——> value 文本域 textarea ——> value 复选框 input:checkbox ——> checked…

Java 垃圾回收

文章目录 1 Java 垃圾回收1.1 JVM1.2 Java 对象生命周期 2 如何判断一个对象可被回收2.1 引用计数算法2.2 可达性分析算法 3 垃圾回收过程3.1 总体过程3.2 为什么要进行世代垃圾回收?3.3 分代垃圾回收过程 在 C 和 C 中,许多对象要求程序员声明他们后为其…

SpringMVC:拦截器(Interceptor)

1. 简介 拦截器(Interceptor)类似于过滤器(Filter) Spring MVC的拦截器作用是在请求到达控制器之前或之后进行拦截,可以对请求和响应进行一些特定的处理。拦截器可以用于很多场景下: 1. 登录验证&#xf…

Facebook开户|如何科学高效投放Facebook Ads

中午好家人们~今天Zoey来聊聊如何科学高效投放Facebook Ads~ 一、定义目标受众 在开始广告投放之前,需要明确定义你的目标受众。你可以根据受众的年龄、性别、兴趣、行为以及他们所在的地理位置等信息来确定目标受众。这样有助于创建精准的广告,并确保广…

PieCloudDB Database Flink Connector:让数据流动起来

面对客户环境中长期运行的各种类型的传统数据库,如何优雅地设计数据迁移的方案,既能灵活地应对各种数据导入场景和多源异构数据库,又能满足客户对数据导入结果的准确性、一致性、实时性的要求,让客户平滑地迁移到 PieCloudDB 数据…

降重工具:AI辅助下的论文查重率优化

确保论文的原创性和学术诚信是每位学生毕业的关键步骤,而论文查重和降重在此过程中起着至关重要的作用。 传统的论文查重通常依赖于查重软件和个人复查,而降重则涉及改写、同义词替换、内容的扩展与深化以及正确引用等方法,这些步骤不仅耗时…

MySQL——索引失效的10种情况

MySQL中提高性能的一个最有效的方式是对数据表设计合理的索引。索引提供了高效访问数据的方法,并且加快查询速度,因此索引对查询的速度有着至关重要的影响。 使用索引可以快速定位表中的某条记录,从而提高数据库查询的速度,提高数…

功能强大且专业的PDF转换软件PDF Shaper Professional 14.2

PDF Shaper Professional是一款适用于Windows的程序,可让您在计算机上处理PDF文件。 要开始使用PDF Shaper Professional,您需要在Windows计算机上下载并安装该程序。您还应该有合适的驱动程序和编解码器来处理计算机上的文本和图形。 安装程序后&#…

常用运维工具之 WGCLOUD(国产软件)介绍

WGCLOUD是一款免费开源的运维监控软件,轻量高效,部署方便,上手简单,界面简单流畅 WGCLOUD是国产运维软件,可以适配大部分的信创环境,比如麒麟、统信等操作系统 WGCLOUD具体支持监控的操作系统如下&#x…

【全开源】小区入户安检系统(FastAdmin + Uni-APP)

守护家的每一道防线 一款基于FastAdmin Uni-APP开发的小区入户安检系统(前端可发布为小程序、H5、App)。可针对不同行业自定义安检项目,线下安检,线上留存(安检拍照/录像),提高安检人员安检效率。 一、引言&#xff…