很多人认为 swap 是物理 RAM 内存已满时才使用交换空间 swap。这是一个错误的认知,因为 Linux 内核会将非活动页面从内存移动到交换空间 swap。
交换空间 swap 不应视为物理内存的替代。由于交换空间是硬盘驱动器的一部分,因此它的访问速度比物理内存慢。
在本教程中,说明什么是交互空间 swap,什么是 zram 以及两者优缺点,简单的总结 zram 和 swap 的区别。
什么是 swap
交换空间可以是磁盘的一个分区,也可以是一个文件。用户可以在安装时或安装后的任何时候都可以创建交换空间。
交换空间有两种用途:第一,是将虚拟内存扩大到超过已安装的物理内存 RAM 的容量。第二,是用于 suspend-to-disk 支持。
Linux 内核使用 swap 是正常的事,也是一件好事。Linux 内核会内存缓存移动到交换空间,以确保内存 RAM 为更频繁使用内存的进程提供更多可用的缓存空间。
使用 swap 也会对你有些帮助,这样可以延迟 Linux 内核 OOM Killer 机制终止进程并释放内存,让你有足够时间去应对。
什么是 zRAM
zram 也称为 zRAM,先前称为 compcache。是Linux 内核的核心功能,可提供虚拟内存压缩。
zram 通过在 RAM 内的压缩块设备的分页,直到必须使用硬盘的交换空间,避免在磁盘进行分页,从而提高性能。
由于 zram 可以用内存代替硬盘为系统提供交换空间的功能,zRAM 可以在内核需要交换/分页时,让 Linux 内核更好利用内存 RAM。
zram 和 swap 哪个好
当 Linux 内核频繁将内存缓存移入和移出内存到交换空间 swap 时,磁盘 I/O 会成为一个性能问题。
而 zRAM 是在内存创建一个块设备作为交换空间,因此不会因为磁盘 I/O 造成性能下降。
zRAM 的一个缺点是它使用一些内存 RAM 和 CPU 时间进行压缩,但 zRAM 在磁盘I/O与压缩内存后所获得的收益所抵消。
1GB 的 ZRAM 可在压缩后可释放内存大约 2 到 3 GB 。这意味着 Linux 系统可以在超过总内存情况下不会发生 OOM。
结论
总的来说,zRAM 具备 swap 优点并消除因为在频繁使用磁盘 I/O 的而造成的性能问题,其实 zRAM 和 swap 是可以同时存在并使用两者,Linux 内核默认优先使用 zRAM。