全部课程
zswap是什么
发布时间: 2023-03-10
zswap是Linux内核中的一个虚拟内存压缩功能,为要交换的页面提供一个压缩的回写缓存。当一个内存页要被换出时,zswap不是把它移到交换设备上,而是把它压缩并存储在系统RAM中动态分配的内存池中。
写回实际交换设备的时间被推迟,甚至完全避免,大大减少了Linux系统用于交换的I/O量;副作用是压缩需要额外的CPU周期。 zSWAP并没有虚拟化一个块设备,而是钩住正常的交换代码,在实际写到/从磁盘操作发生之前使用自己的管理内存 在实际写到/从磁盘操作发生之前,它使用自己的管理内存来换出/换入数据,然后在内存耗尽时使用传统交换分区。因此,zSWAP适用于已经有交换分区的系统,而zRAM更适合于像Android这样没有交换分区的嵌入式系统。
zRam实际上有两个大问题:zRam本身试图在内存快满时将数据返回给内存,而系统则试图用数据填满zRam。
zRam的实现将自己虚拟成一个交换分区。另一方面,zSwap介入了内核的交换过程,保留了所有被系统刷过的数据,并将其存储在自己的内存中。这个实现的优点是它可以和硬盘上实际存在的交换分区一起使用。它还避免了zRam的两个主要问题。 这是因为zSwap在面临内存不足时可以写到交换分区,而不试图将数据返回到内存。另一方面,如果一大片内存被空闲程序占据,zSwap可以用这些数据填充硬盘。由于这部分内存很少被使用,存入较慢的硬盘不会影响运行速度。
zSwap实际上可以在与zRam相同的模式下工作,只要没有设置交换分区。
上一篇: 数据生命周期管理的作用是什么
下一篇: 0x0000008e蓝屏代码怎么解决