zram是linux的一种
内存优化技术,基本工作原理是:通过划定一片区域,将压缩过后的硬盘数据放入该区域,以实现高速读取。
zram(也称为 zRAM,先前称为 compcache)是
Linux内核的一项功能,可提供虚拟内存压缩。zram 通过在 RAM 内的压缩块设备上分页,直到必须使用硬盘上的交换空间,以避免在磁盘上进行分页,从而提高性能。由于 zram 可以用内存替代硬盘为系统提供交换空间的功能,zram 可以在需要交换 / 分页时让 Linux 更好利用 RAM ,在物理内存较少的旧电脑上尤其如此。
即使 RAM 的价格相对较低,zram 仍有利于
嵌入式设备、上网本和其它相似的低端硬件设备。这些设备通常使用固态存储,它们由于其固有性质而寿命有限,因而避免以其提供交换空间可防止其迅速磨损。此外,使用 zRAM 还可显著降低 Linux 系统用于交换的 I/O 。
zram 在 2009 年的时候就进了 kernel 的 staging 目录,并于 2014 年 3 月 30 日发布的 3.14 版本正式合并入 Linux 内核主线。在 2014 年 6 月 8 日发布的 3.15 版本的 Linux 内核中,zram 已可支持 LZ4 压缩算法,而 LZO 仍然作为默认的压缩后端。内核 3.15 中的修改还改进了性能,以及经由 sysfs 切换压缩算法的能力。
Lubuntu 于 13.10 开始使用 zram 。截至 2012 年 12 月,Ubuntu 考虑为小内存的计算机默认启用 zram 。 Google 在 Chrome OS 中使用 zram,它也成为了 Android 4.4 及以后版本设备的一个选项。
zram是内存压缩,所有写入内存的东西都会经过压缩,会少量增加CPU负担swap是交换分区,类似Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。
zRAM是一个Linux内核驱动,zRAM大体上可以看成是用内存做一块虚拟盘,拿来作为Linux的交换分区。和普通的ramdisk不同,zRAM对存放的内容会进行实时的
压缩,以提高实际的容量。
ZRAM是Linux的一种内存优化技术,它划定一片内存区域作为
SWAP的交换分区,但是它本身具备自动压缩功能,从而可以达到辅助Linux匿名页的交换效果,变相“增大”了
内存。
zRAM可以分出一块内存,然后让系统当作虚拟内存来使用。传统的虚拟内存是存放在磁盘上的,而zRAM存在内存里,并会进行压缩。这样的虚拟内存访问速度可以提高很多,内存利用率也会大幅提高。所以对于小内存设备,比如512M内存的Android设备,或者1G内存的电脑,都会有很大帮助。应该和OS X 10.9的内存压缩效果差不多,而且设计得更为巧妙。在CPU有较快速度的年代里,利用CPU的资源对内存进行压缩,以便在小内存设备里也能存下更多的后台进程,是个很不错的方法。