参考:https://sleeplessbeastie.eu/2021/03/17/how-to-use-compressed-ram-based-block-devices/
当android设备有相对充足的ram,就可以用zram把ram转换成块设备了。zram创建的块设备不仅可以用来做高性能的临时盘存储,还可以用来作为swap来避免在物理设备上进行交换。其拥有内置的压缩算法,比直接使用ram要节省空间。
以下命令假定在一个正常运行的deploy chroot容器中进行。
大多数现代的android设备均支持zram,可以通过终端查看是否支持:
ls /dev
ls /dev/block
如果发现了名为zram0的设备,代表zram已经开启。由于android内核的特殊性,如果不慎没有zram设备,可能会需要重新编译内核。
然后安装控制zram设备所需的软件:
sudo apt-get update
sudo apt-get install util-linux e2fsprogs
安装util-linux后,即可使用zramctl程序。该程序能够控制zram设备。
man zramctl
利用zramctl"找"一个新的zram设备,记住要sudo。
sudo zramctl --find
zramctl会提示找到了
/dev/zram1
但是!但是!一定要确认有没有找到,
cd /dev |grep zram
然后发现没有。原因是在笔者的android上,zram找出来的块设备会自动跑到/dev/block里面去,所以找到的其实是
/dev/block/zram1
然后使用zramctl配置zram设备,这里根据所需大小自行调整参数。
sudo zramctl --size 1G --algorithm lz4 --streams 2 /dev/block/zram1
然后格式化。
sudo mkfs.ext2 -T news /dev/block/zram1
然后挂载。
sudo mkdir /mnt/zram
sudo mount /dev/block/zram1 /mnt/zram
自行配置权限。
通过测试可以发现,zram的操作速度比flash要高出许多。
time dd if=/dev/zero of=/mnt/zram/test bs=4k count=100000
time dd if=/dev/block/zram1 of=/dev/null bs=4k count=100000
在笔者的设备上测试,速度分别达到了1200MB/s读和900MB/s写,接近普通固态的水准了,比flash不知道高到了哪里去。
但是zram是易失性存储,重启后数据会丢失,切记。
重启后需要重新初始化该设备。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)