三星吧 关注:1,204,166贴子:7,756,501

三星RAM Plus 使用ZRAM而非SWAP分区/文件!?

只看楼主收藏回复

去年我一次楼中楼发帖,一直到现在都有人私信询问我。
当时使用S22国行,使用黑阈命令行简单无线调试,因楼中楼无法随图,便直接给了结论。
这次使用美版S25 RAM Plus 8GB, 使用ADB Shell 并解析步骤。
原地开始
-----------------------------------------------------------------------------------------------------------------------
首先使用
free -h
#显示系统中内存使用情况

排除硬件保留,物理RAM为11GB,其中10GB被使用,总虚拟内存为8GB(SWAP ZRAM ZSWAP合并归类到虚拟内存)
cat /sys/block/zram0/disksize
#查看ZRAM总大小

系统从物理RAM中配置了8589934592字节用于ZRAM内存交换
ls /dev/block/zram*
#查看系统中已挂载的ZRAM

dumpsys meminfo | grep -i zram
dumpsys meminfo | grep -i swap
#查看ZRAM与SWAP各自的使用情况及压缩率

两者的总交换空间一致,
1,115,304kb的物理内存,容纳了 4,631,164kb逻辑内存,此时压缩比为1:4.16 即24%。
cat /sys/block/zram0/comp_algorithm
#查看ZRAM使用的压解协议

表明设备使用lzo-rle协议,对比其他三种协议 速度非常快 压缩率中等偏低 CPU开销非常低
换句话说lzo-rle比lzo解压缩速度更快,比zstd速度和性能开销更低 但压缩率也更低,比lz4压缩率更高 但速度稍低 开销稍高。
----------------------------------------------------------------------------------------------------------------------------
其他cat ls smem或swapon命令,因三星内核设定和非root用户原因,未启用/支持不完全或权限受限。
无法使用ls检索swap* 确认系统中是否完全没有swap交换分区/文件。
但截至目前所有结果均偏向于RAM Plus设定值影响ZRAM而非SWAP,且目前没有证据表明ZRAM会结合少量磁盘转储(writeback)。
-------------------------------------------------------------------------------------------------------------------------------
总之所有我试过的有效命令均以贴出,有兴趣自己查证非S25设备RAM plus情况的,可以使用有线 ADB Shell,或使用黑阈 shizuku 其他终端,使用无线调试。
----------------------------------------------------------------------------------------------------------------------------------
完全关闭RAM plus与设定更少(如2GB),对ZRAM的影响仍然是个有趣的情况。
按照我过往的经验,完全关闭RAM plus系统仍会强制启用物理ROM一定比例的ZRAM,来源于安卓内核。
但设置的更低与S25设备是否会有特殊情况,我重启几下试试看,楼下简单贴。


IP属地:辽宁1楼2025-04-17 15:14回复
    pa1q:/ $ free -h
    total used free shared buffers
    Mem: 11G 10G 1.3G 20M 3.9M
    -/+ buffers/cache: 10G 1.3G
    Swap: 3.0G 1.1G 1.8G
    -------------------------------------------------------------------------------
    pa1q:/ $ cat /sys/block/zram0/disksize
    3221225472
    -----------------------------------------------------------------------------------
    pa1q:/ $ dumpsys meminfo | grep -i zram
    umpsys meminfo | grep -i swap
    ZRAM: 276,336K physical used for 942,592K in swap (3,145,724K total swap)
    pa1q:/ $ dumpsys meminfo | grep -i swap
    ZRAM: 276,336K physical used for 942,592K in swap (3,145,724K total swap)
    --------------------------------------------------------------------------------------------
    RAM Plus 完全设置关闭时,自动设置为3GB ZRAM,此时压缩率为29% 估计是因为压力不充分。
    但即使有8GB物理内存供使用,内存压力反而大幅度增加。


    IP属地:辽宁2楼2025-04-17 15:28
    回复
      2026-01-20 23:23:54
      广告
      不感兴趣
      开通SVIP免广告
      接下来我尝试将RAM Plus设置为 2GB,是否可以强制覆盖内核特性。


      IP属地:辽宁3楼2025-04-17 15:29
      回复
        C:\CK\platform-tools>adb shell
        pa1q:/ $ free -h
        total used free shared buffers
        Mem: 11G 9.4G 1.4G 17M 2.0M
        -/+ buffers/cache: 9.4G 1.4G
        Swap: 3.0G 87M 2.9G
        -----------------------------------------------------------------------------
        pa1q:/ $ cat /sys/block/zram0/disksize
        3221225472
        --------------------------------------------------------------------------
        mpsys meminfo | grep -i swap
        ZRAM: 244,304K physical used for 1,032,192K in swap (3,145,724K total swap)
        pa1q:/ $ dumpsys meminfo | grep -i swap
        ZRAM: 244,408K physical used for 1,030,400K in swap (3,145,724K total swap)
        -----------------------------------------------------------------------------
        似乎无法覆盖内核特性


        IP属地:辽宁4楼2025-04-17 15:32
        回复
          虽然非root用户无法访问/proc/swaps,但以linux内核逻辑,free -m命令会将所有虚拟内存(SWAP ZRAM ZSWAP)加算最终显示。


          IP属地:辽宁5楼2025-04-17 15:37
          回复
            看不懂 但觉得你很厉害


            IP属地:广西来自Android客户端6楼2025-04-17 15:40
            收起回复
              RAM Plus 设置4GB及以上,会覆盖内核最低设定。
              但非root用户无法强制将ZRAM完全关闭。


              IP属地:辽宁7楼2025-04-17 15:43
              回复
                结论RAM Plus通过修改ZRAM大小,而非将UFS储存以SWAP交换分区/文件的方式实现。
                ZRAM的原理是在物理RAM中模拟一个交换分区,将非活动分页缓存,压缩存放,并且使用时解压至物理RAM。
                以lzo-rle协议和8elit的多核性能,这点性能开销和功耗增加可以忽略不计。
                lzo-rle协议的压缩率在20-30%,本次测试中常见中位数为25%。
                8GB ZRAM根据压缩率20%-30%等效物理内存26-40GB,但实际情况仍取决于到底存了点啥,小进程与大进程的存放分隔也有区别,在最保守的情况下,也至少在等效20GB左右。
                通常来讲,你就这么当作吧。


                IP属地:辽宁8楼2025-04-17 16:10
                回复
                  2026-01-20 23:17:54
                  广告
                  不感兴趣
                  开通SVIP免广告
                  我们看不懂,


                  IP属地:四川来自Android客户端9楼2025-04-17 16:10
                  收起回复
                    因为测试ZRAM读写速度需要在root用户下使用dd命令读写/sys/block/zram0
                    但我在既往已root设备上测试,888的读写速度为600MB/S 855的读写速度为150MB/S
                    8elit的多核性能保守估计有3GB/S
                    S25在用户线程中测试的读写速度为20GB/S,LPDDR5X理论峰值速度为85.6GB/S
                    但对于虚拟内存用途,3GB/S足够。
                    因为就算是16GB物理RAM,也分分钟占满触发内存回收机制。
                    内存回收的性能开销起码比ZRAM压解开销大很多


                    IP属地:辽宁10楼2025-04-17 16:50
                    回复
                      推荐24系列开吗 有没有必要开启 开到多少G合适


                      IP属地:江苏来自Android客户端11楼2025-04-17 17:16
                      收起回复
                        这个黑阀能不能拒绝掉那些软件申请,老是弹出窗让我放他们出来


                        IP属地:广东来自Android客户端12楼2025-04-17 17:55
                        收起回复
                          看不懂,这是技术活


                          IP属地:安徽来自Android客户端13楼2025-04-17 18:16
                          收起回复
                            楼主厉害。不影响寿命,会更加耗电么,还是说增加的耗电也忽略不计?另外会影响速度么?所以24直接开6g就对了吧


                            IP属地:江西来自Android客户端14楼2025-04-17 21:21
                            收起回复
                              2026-01-20 23:11:54
                              广告
                              不感兴趣
                              开通SVIP免广告
                              s23也是一样的吗,8g的话也开6g?


                              IP属地:河南来自Android客户端15楼2025-04-18 03:00
                              收起回复