0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探讨移动设备中的缓存文件管理

SSDFans 来源:未知 2024-11-28 11:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文发表于FAST 2022。探讨缓存文件管理方法。本文通过一个轻量级的基于机器学习的分类引擎来筛选和个性化管理缓存文件,实验华为P9Mate30两部手机上进行,验证I/O性能和存储寿命。结果表明其具有很好的实用价值。

背景

由于应用程序的动态特性和整体系统优化,大部分移动应用程序都需要从网络中下载文件或数据。即使现代通信网络具有更高的带宽,许多应用程序仍然严重依赖移动设备上缓存的数据,以避免通过网络重新下载数据,并满足其执行延迟需求。当前的移动设备首先将缓存文件存储在主存中,然后将它们写回闪存。这些应用程序的缓存数据通常作为缓存文件进行管理,并且可以快速地重新访问。

问题

1. 缓存文件请求的空间越来越大

即使部分移动系统和用户会对部分缓存文件进行删除,但是由于缓存文件的保存而造成的额外闪存写已经发生,对闪存性能和寿命的损害也无法避免;同时,实验显示现实缓存文件写入移动设备存储中的数据量占总写入量的64%,频繁的缓存文件的写入和删除都会引起闪存的IO争用用降低系统效率,影响闪存寿命。

eb958126-ad24-11ef-93f3-92fbcf53809c.png

图1 不同应用缓存写次数和写量占比

2. 当前的安卓系统没有考虑缓存文件之间的差异性

缓存文件根据其访问模式和生命周期可以分为三类:阅后即焚文件,下载后不会被再次访问,因此可以在访问之后直接删除;瞬态文件,下载后短时间内会频繁访问,但过一段时间旧不会被再次访问;长寿文件,下载后的很长一段时间后还会被再次访问。实验结果显示由93%的缓存文件都是阅后即焚文件和瞬态文件,不需要存储到闪存中去,但是当前的系统对所有的缓存文件都采取持久化到闪存的策略,实际上造成了存储空间的极大浪费,严重影响闪存寿命和性能。

CacheSifter设计与实现

1. 设计原则

(1)用户应用透明,不影响应用的正常运行;

(2)在线分类,对于阅后即焚文件和瞬态文件避免存储到闪存中;

(3)自适应内存管理,根据内存的使用情况自动调整不同应用的缓存对于内存的占用;

(4)适应用户行为的改变,当用户访问模式改变时可以重新分类已经做过分类的文件;

(5)确保系统安全性,删除缓存文件不会导致应用程序崩溃或用户数据丢失。

2. 基本框架

用一个轻量级的机器学习模型进行缓存文件的在线分类,并根据不同的文件类型采取不同的存储策略:对于阅后即焚文件,在分类之后立即删除;对于瞬态文件,分类之后由内存中的链表进行管理,超出活动时长则进行删除操作;对于长寿文件,利用安卓的基本LRU驱逐机制,自动写回后端闪存,并会在应用程序将该文件失效之后从闪存中删除。对于一些重要的缓存文件或者删除会影响系统安全的文件维护一个安全链表,避免误删的操作。

eb9938ac-ad24-11ef-93f3-92fbcf53809c.png

图2 系统框架

CacheSifter优势

1. 避免在闪存中存储阅后即焚文件和瞬态缓存文件,可以减少对闪存空间的不必要的数据写,大大改善闪存性能和寿命;2. 直接从DRAM访问瞬态文件,提高这部分文件的访问速度和性能;3. 利用轻量级的机器学习模型来优化缓存文件的管理,引入的代价极小,可以实现用户透明的目标。

评估

评估实验在华为P9Mate30两部手机上进行,由于CacheSifter的平台独立性,结果显示在两部手机上的实验数据差异不大。

由于内存使用和分类时间的限制,本文在一个模型中只能关注一个优化指标,因此使用了两个模型来进行训练以分别保证训练的高准确率或高召回率:高召回率模型旨在减少缓存文件的回写,并将重新下载的开销最小到最低;而高精度模型则旨在以最小的错误分类来减少缓存文件的回写。

为了评估Cache Sifter的有效性,我们设计实验来验证本文的方法在缓存回写数据量的减少、闪存寿命的改善、密集IO下读写性能的提高等指标上的结果。

1. 缓存文件写回数据量显著减小

该实验主要对缓存写的减少和总IO的减少进行评估。

在P9上,高召回模型和高精度模型将缓存文件的写平均减少了62%和59.5%。两种模型也显著减少了总i/o的数量,即平均分别为29.7%和31.2%;在Mate30上,两种模型也都大大减少了缓存文件的回写,即平均分别为88.3%和85.5%。两种模型的I/Os数量也减少得更多,即平均分别为47.7%和46.6%。而之所以在两部手机上具有不同的优化效果,主要还是因为用户行为和系统默认管理机制的不同。

eba434a0-ad24-11ef-93f3-92fbcf53809c.png

图3 缓存写回数据量减少的实验结果

2. 闪存寿命显著改善

通过代入写放大系数、预留空间因子、以及PE循环次数可以大致估算出闪存的寿命。以P9为例,通过计算可以得出两种模型的平均I/O量可分别减少53.2%和54.7%。因此,使用寿命可以平均分别提高113.7%和120.8%。可以看出本文的方法可以有效提升闪存寿命。

3. 密集IO下读写性能提升

通过制造IO密集内存条件,测试了不同实验组(不做缓存管理的基本组,高召回率实验组,高准确率实验组,不生成缓存文件的实验组)在读写一个512MB文件时的读写延迟。实验结果如图4:

eba7e366-ad24-11ef-93f3-92fbcf53809c.png

图4 读写性能的提升(a)和IO数据量的减少(b)

可以看到在IO密集情况下(2G内存),与基本组相比,高召回率模型的读写延迟平均分别降低了13.9%和18.4%,而使用高精度模型的读写延迟分别降低了14.4%和25.5%。这是因为CacheSifter会使得由应用程序生成的缓存文件回写显著减小,从而改善了内存不足或IO密集情况下的IO争用。因此当内存充足(至少2.5G)时,这种改善会由于IO争用的不明显而无法体现。

总结

文章提出了一种缓存文件管理方案CacheSifter,通过一个轻量级的基于机器学习的分类引擎来筛选和个性化管理缓存文件,实验结果可以证明该方法对I/O性能和存储寿命都提供了显著的好处,但开销很小,具有很好的实用价值。

The End

致 谢

感谢本次论文解读者,来自华东师范大学的准研究生张祎,主要研究方向为闪存缓存管理技术研究。


原文标题:移动设备中的缓存文件管理

文章出处:【微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

原文标题:移动设备中的缓存文件管理

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    京东缓存中间件架构与缓存内核优化

    一、京东缓存中间件架构 1、背景 在当今高并发、分布式的系统架构缓存已成为提升应用性能、降低数据库负载的核心组件。随着业务规模的扩大与系统复杂度的增加,缓存的使用和
    的头像 发表于 04-03 16:18 1810次阅读
    京东<b class='flag-5'>缓存</b>中间件架构与<b class='flag-5'>缓存</b>内核优化

    TI LM3631:优化移动设备LCD电源与背光方案

    一款专为移动设备LCD设计的高度集成解决方案,能够满足高清LCD的复杂电源需求。下面就详细探讨一下这款芯片的设计特点、应用及相关注意事项。 文件下载: lm3631.pdf 一、LM3
    的头像 发表于 02-27 10:25 221次阅读

    MAX8672:智能设备备用电池的理想管理方案

    MAX8672:智能设备备用电池的理想管理方案 在电子设备设计,备用电池管理是一个至关重要的环节,它直接关系到
    的头像 发表于 02-25 16:10 204次阅读

    探秘DS2731:缓存内存电池备份管理IC的卓越性能与应用

    探秘DS2731:缓存内存电池备份管理IC的卓越性能与应用 在电子设备的设计,电源管理是一个至关重要的环节,尤其是对于需要可靠备份电源的应
    的头像 发表于 02-24 16:40 406次阅读

    C语言的缓冲区(缓存)详解

    填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写。   2) 行缓冲   在这种情况下,当在输入和输出遇到换行符时,执行真正的I/O操作。这时,我们输入的字符先存
    发表于 01-14 07:30

    RDMA设计14:连接管理模块设计

    管理池组成。连接信息缓存存放由系统控制模块写入的待处理连接指令信息;连接管理状态机获取连接指令信息,并进行连接建立或连接断开流程;会话管理
    发表于 12-30 16:51

    飞凌嵌入式ElfBoard-文件I/O的了解探究之Linux系统的文件管理机制

    函数去打开文件的时候,内核会申请一段内存(一段缓冲区),并且将静态文件的数据内容从磁盘这些存储设备读取到内存中进行管理
    发表于 11-18 08:50

    Air8000工业引擎WiFi AP文件管理功能操作指南

    、WiFi AP 文件管理系统概述   本文档介绍基于 Air8000 工业引擎实现的 WiFi AP 文件管理系统功能,通过该功能可以将设备
    的头像 发表于 10-29 15:23 397次阅读
    Air8000工业引擎WiFi AP<b class='flag-5'>文件</b><b class='flag-5'>管理</b>功能操作指南

    SSD为何需要DRAM缓存?天硕工业级SSD带来深度解析!

    在当今数字化转型的浪潮,工业存储设备的选择直接关系到整个系统的稳定性和效率。天硕工业级SSD固态硬盘凭借其卓越的DRAM缓存技术,在众多应用场景展现出独特优势。本文将采用问答形式,
    的头像 发表于 10-20 17:59 1050次阅读
    SSD为何需要DRAM<b class='flag-5'>缓存</b>?天硕工业级SSD带来深度解析!

    工业设备管理系统之间的数据台是什么?

    在工业场景设备(如机床、生产线、传感器等)会产生海量实时数据(如运行状态、参数、故障信息等),而管理系统(如MES、ERP、SCADA等)则需要依赖这些数据实现生产调度、成本核算、运维决策等功能
    的头像 发表于 08-11 13:49 912次阅读

    本地缓存 Caffeine 的时间轮(TimeWheel)是什么?

    对元素管理的机制。在创建有过期时间策略的 Caffeine 缓存时,它提供了三种不同的方法,分别为 expireAfterAccess, expireAfterWrite 和 expireAfter,前
    的头像 发表于 08-05 14:48 693次阅读
    本地<b class='flag-5'>缓存</b> Caffeine <b class='flag-5'>中</b>的时间轮(TimeWheel)是什么?

    高性能缓存设计:如何解决缓存伪共享问题

    在多核高并发场景下, 缓存伪共享(False Sharing) 是导致性能骤降的“隐形杀手”。当不同线程频繁修改同一缓存行(Cache Line)的独立变量时,CPU缓存一致性协议会
    的头像 发表于 07-01 15:01 882次阅读
    高性能<b class='flag-5'>缓存</b>设计:如何解决<b class='flag-5'>缓存</b>伪共享问题

    请问如何增大usb3.0从设备fifo接口固件的写dma缓存大小?

    现有的固件是默认的,分别配置了2个1KB的缓存给读和写的dma。我想要多分配一点缓存给写dma,比如分配4kB给写dma。请教一下该如何修改ez usb suite的参数。
    发表于 05-14 08:13

    MCU缓存设计

    MCU 设计通过优化指令与数据的访问效率,显著提升系统性能并降低功耗,其核心架构与实现策略如下: 一、缓存类型与结构 指令缓存(I-Cache)与数据缓存(D-Cache)‌ I-Cache‌:
    的头像 发表于 05-07 15:29 1280次阅读

    Nginx缓存配置详解

    Nginx 是一个功能强大的 Web 服务器和反向代理服务器,它可以用于实现静态内容的缓存缓存可以分为客户端缓存和服务端缓存
    的头像 发表于 05-07 14:03 1378次阅读
    Nginx<b class='flag-5'>缓存</b>配置详解