zram

2019-07-12 22:13发布

wiki
zram是Linux内核的一个模块,之前被称为“compcache”。zram通过在RAM内的压缩块设备上分页,直到必须使用硬盘上的交换空间,以避免在磁盘上进行分页,从而提高性能。由于zram可以用内存替代硬盘为系统提供交换空间的功能,zram可以让Linux在需要大量RAM的情况下在内存上进行交换/分页,而提高内存的使用率,显著得减少系统启动时(此时Linux还不能使用外部存储)对内存大小的要求。在物理内存较少的旧电脑上,尤其如此。[2][3] 即使RAM的价格比较低,这项功能仍对上网本和其他低功率的笔记本电脑、虚拟化有优势,尤其是那些使用闪存嵌入式设备,其寿命有限且依赖于使用频率,因此用作交换时磨损得很快。[3] 谷歌将为Chrome OS默认启用zram。[4]

http://www.zhihu.com/question/21932664

zRAM 技术特点看 zram - Gentoo Wiki 就明白了。但这种技术实在不新鲜,因为它的前身 compcache - Compressed Caching for Linux 早在 09 年就在 Android 民间开发社区流传了。经过两年的开发与完善,终被上游内核正式接纳(之前可能有进 staging,没空去查),然后 Google 顺水推舟把这一技术加入了 KitKat 更新列表中。最新版本的 zRAM 模块没有测试过,但直到 12 年的版本在小内存设备上的实际表现非常有限。CM 中早已将它作为性能选项引入,但社区反响可以说非常一般。

技术上,zRAM 因为需要开辟一小块内存作为 compressed block 使用,所以在本来内存就不大的设备上反而增加了负担,这是缺点。它的优点是压缩页面(Page cache),让系统内存使用更加有效,效果相当于内存似乎扩大了一样。问题是压缩虽然很快,但也需要占用 CPU 时间,而低端设备普通都装备单核。所以你可以看出,zRAM 其实是一种权衡之术 Running Android with low RAM,Google 又一次将决定权扔给了系统开发者。顺便说,我对 Google 开始堆术语表示担忧,这是它技穷的前兆吗?哈哈。

http://code.google.com/p/compcache/