• Android不带电池设备文件系统配置


    Android不带电池设备文件系统配置

    不带电池的设备建议按如下方式操作:

    • 修改文件系统为ext4,并关闭磁盘加密
    • 修改磁盘的I/O配置

    修改文件系统为ext4,并关闭磁盘加密

    参考文档:Rockchip RK3588 Android SDK关闭data分区的磁盘加密功能及修改data分区的文件系统

    修改磁盘的I/O配置

    文件缓存是一项重要的性能改进,在大多数情况下,读缓存在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据)。写缓存比较复杂,Linux内核将磁盘写入缓存,过段时间再异步将它们刷新到磁盘。这对加速磁盘I/O有很好的效果,但是当数据未写入磁盘时,丢失数据的可能性会增加。

    • vm.dirty_background_ratio 是内存可以填充脏数据的百分比。这些脏数据稍后会写入磁盘,pdflush/flush/kdmflush这些后台进程会稍后清理脏数据。比如,我有32G内存,那么有3.2G的脏数据可以待着内存里,超过3.2G的话就会有后台进程来清理。
    • vm.dirty_ratio是可以用脏数据填充的绝对最大系统内存量,当系统到达此点时,必须将所有脏数据提交到磁盘,同时所有新的I/O块都会被阻塞,直到脏数据被写入磁盘。这通常是长I/O卡顿的原因,但这也是保证内存中不会存在过量脏数据的保护机制。
    • vm.dirty_background_bytes和vm.dirty_bytes是另一种指定这些参数的方法。如果设置_bytes版本,则_ratio版本将变为0,反之亦然。
    • vm.dirty_expire_centisecs 指定脏数据能存活的时间。默认值是3000,即30s,。当 pdflush/flush/kdmflush 在运行的时候,他们会检查是否有数据超过这个时限,如果有则会把它异步地写到磁盘中。毕竟数据在内存里待太久也会有丢失风险。
    • vm.dirty_writeback_centisecs 指定多长时间 pdflush/flush/kdmflush 这些进程会唤醒一次,然后检查是否有缓存需要清理,默认值为500,单位是厘秒,实际内核中是*10使用,即5s。

    对于不带电池的设备为了降低突然断电导致数据丢失的概率,建议增加脏数据回写频率,可以在init.rc文件中进行配置:

    wlq@sys2_206:~/4_Android12_29_sdk/device/rockchip/rk3588$ git diff init.rk3588.rc
    diff --git a/init.rk3588.rc b/init.rk3588.rc
    index dcac552..5da6a9e 100644
    --- a/init.rk3588.rc
    +++ b/init.rk3588.rc
    @@ -66,6 +66,10 @@ on boot
         # The initial load of RT process, set the range of 0-1024, set the RT task above 300 will preferentially run on the cpuB(cpu4-cpu7)
         write /proc/sys/kernel/sched_util_clamp_min_rt_default 0
    
    +    write /proc/sys/vm/dirty_ratio 10  //当脏数据达到内存的10%时强制回写到flash中,此时可能会导致IO负载高
    +    write /proc/sys/vm/dirty_background_ratio 1 //当脏数据达到内存的1%时,开始后退回写脏数据
    +    write /proc/sys/vm/dirty_writeback_centisecs 100  //1秒进行检查一次
    +    write /proc/sys/vm/dirty_expire_centisecs 200   //脏数据能存活的时间2秒
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    消费增值模式:产品回报+现金回报,用户忠诚度大增!
    这款开源神器,让聚类算法从此变得简单易用
    Ubuntu安装NVIDIA显卡驱动
    是一篇散文
    JAVA反射
    MidJourney | AI绘画也有艺术
    Java8新特性stream和parallelStream有什么区别
    一个循环问题以及两个循环问题,其中两个循环需要两种不同方式实现
    showdoc本地部署后如何关闭注册功能
    力扣每日一题:1732. 找到最高海拔【简单模拟题,有点前缀和的样子】
  • 原文地址:https://blog.csdn.net/weixin_43245753/article/details/127898965