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】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    缓存之美——如何选择合适的本地缓存

    Guava cache是Google开发的Guava工具包中一套完善的JVM本地缓存框架,底层实现的数据结构类似于ConcurrentHashMap,但是进行了更多的能力拓展,包括缓存过期时间设置、缓存容量设置、多种淘汰策略、
    的头像 发表于 11-17 14:24 176次阅读
    <b class='flag-5'>缓存</b>之美——如何选择合适的本地<b class='flag-5'>缓存</b>?

    EasyControl赋能华为HarmonyOS系统的企业级移动设备管理方案

    在企业环境移动设备管理对于保障数据安全、提高工作效率、降低运营成本至关重要。通过有效的移动设备管理(MDM)服务,企业能够实现
    的头像 发表于 08-02 11:06 413次阅读
    EasyControl赋能华为HarmonyOS系统的企业级<b class='flag-5'>移动</b><b class='flag-5'>设备管理</b>方案

    设备管理系统:是什么、谁需要、推荐设备管理系统

    设备管理系统(EMS)在企业管理愈发重要。设智控设备管理系统以全生命周期管理为主,涵盖预算、
    的头像 发表于 08-01 11:23 599次阅读
    <b class='flag-5'>设备管理</b>系统:是什么、谁需要、推荐<b class='flag-5'>设备管理</b>系统

    嵌入式设备的4G/5G模块管理

    在高度数字化的智能时代,Linux嵌入式板卡在各个领域都发挥着重要作用,然而,随着4G/5G技术的普及,如何高效、稳定地管理这些嵌入式设备上的无线模块,成为了用户面临的一大挑战——嵌入式设备
    发表于 07-13 16:45

    鸿蒙开发文件管理:【@ohos.fileio (文件管理)】

    该模块提供文件存储管理能力,包括文件基本管理文件目录管理
    的头像 发表于 06-12 18:12 1130次阅读
    鸿蒙开发<b class='flag-5'>文件</b><b class='flag-5'>管理</b>:【@ohos.fileio (<b class='flag-5'>文件</b><b class='flag-5'>管理</b>)】

    鸿蒙开发文件管理:【@ohos.fileManager (公共文件访问与管理)】

    该模块提供公共文件访问和管理的服务接口,向下对接底层文件管理服务,如媒体库、外卡管理;向上对应用程序提供公共
    的头像 发表于 06-12 17:00 777次阅读
    鸿蒙开发<b class='flag-5'>文件</b><b class='flag-5'>管理</b>:【@ohos.fileManager (公共<b class='flag-5'>文件</b>访问与<b class='flag-5'>管理</b>)】

    鸿蒙原生应用元服务开发WEB-缓存与存储管理

    缓存模式,Web组件为开发者提供四种缓存模式,分别为: Default : 优先使用未过期的缓存,如果缓存不存在,则从网络获取。 None : 加载资源使用cache,如果cache
    发表于 05-17 11:23

    LOTO示波器软件PC缓存(波形录制与回放)功能

    的整个数据帧白色的矩形框会显示取了局部的一个框选位置的波形作为整个屏幕显示的波形数据。在示波器停止的状态下,PC缓存里的波形数据可以选择任意帧去浏览和放大缩小移动。更可以保存为波形数据文件
    发表于 05-16 11:23

    设备仓储管理系统在设备管理的应用

    随着我国工程建设项目现场仓储管理项目数量及规模不断增加,各类仓储管理项目广泛使用信息化仓储管理系统,在一些施工现场设备仓库管理办法流程手续繁
    的头像 发表于 04-07 14:20 393次阅读

    鸿蒙开发实战:【文件管理

    文件管理相关的功能,使用[@ohos.multimedia.medialibrary]、[@ohos.filemanagement.userFileManager] 、[@ohos.fileio
    的头像 发表于 03-20 21:57 623次阅读
    鸿蒙开发实战:【<b class='flag-5'>文件</b><b class='flag-5'>管理</b>】

    设备资产管理系统在智慧园区的应用

    设备资产管理系统在智慧园区具有重要的作用和广泛的应用场景。通过系统的监控和管理,园区管理者可以实现对
    的头像 发表于 03-05 17:19 565次阅读
    <b class='flag-5'>设备</b>资产<b class='flag-5'>管理</b>系统在智慧园区<b class='flag-5'>中</b>的应用

    设备资产管理系统在智慧园区的应用

    设备资产管理系统在智慧园区具有重要的作用和广泛的应用场景。通过系统的监控和管理,园区管理者可以实现对
    的头像 发表于 03-05 11:48 369次阅读
    <b class='flag-5'>设备</b>资产<b class='flag-5'>管理</b>系统在智慧园区<b class='flag-5'>中</b>的应用

    Redis缓存预热+缓存雪崩+缓存击穿+缓存穿透要点简析

    缓存预热就是系统上线后,提前将相关的缓存数据直接加载到缓存系统。
    的头像 发表于 12-25 09:41 859次阅读
    Redis<b class='flag-5'>缓存</b>预热+<b class='flag-5'>缓存</b>雪崩+<b class='flag-5'>缓存</b>击穿+<b class='flag-5'>缓存</b>穿透要点简析

    AD9755在设备管理更新驱动程序软件显示找不到设备的驱动程序文件如何解决?

    是驱动的问题,在设备管理更新驱动程序软件显示找不到设备的驱动程序文件,该如何解决,或者在哪下驱动呢?
    发表于 12-05 06:16

    mybatis一级缓存和二级缓存的原理

    SqlSession的生命周期中,当SqlSession关闭时,一级缓存也会被清空。 1.2 缓存实现机制 一级缓存采用了基于PerpetualCache的HashMap来实现,使用一个Map对象来保存
    的头像 发表于 12-03 11:55 1096次阅读