内存是计算机系统最重要的资源之一,当操作系统内存不足时,进程申请内存将会失败,从而导致其运行异常或者崩溃。
Linux 内核提供 swap
机制来解决内存不足的情况,其原理是:
当系统内存不足时,内核会将进程不常用的内存交换(写入)到磁盘中,然后将这些内存归还给系统,系统可以将这些内存继续分配给其他需要使用内存的进程。
通过 swap 机制,系统可以将内存分配给需求更迫切的进程。但由于 swap 机制需要进行 I/O 操作,所以一定程度上会影响系统性能。那么是否存在一种能够节省内存,而且对性能影响较少的机制呢?
在 Linux-3.14 引入了一种名为 zRAM
的技术,zRAM 的原理是:将进程不常用的内存压缩存储,从而达到节省内存的使用。如下图所示:
zRAM 机制建立在 swap 机制之上,swap 机制是将进程不常用的内存交换到磁盘中,而 zRAM 机制是将进程不常用的内存压缩存储在内存某个区域。所以 zRAM 机制并不会发生 I/O 操作,从而避免因 I/O 操作导致的性能下降。
zRAM原理
由于 zRAM 机制是建立在 swap 机制之上,而 swap 机制需要配置 文件系统
或 块设备
来完成的。所以