【操作系统百科】交换

💡 原文中文,约4500字,阅读约需11分钟。
📝

内容提要

本文讨论了Linux系统中的swap机制,包括swap的类型(如zram和zswap)、配置方法及其在容器中的应用。swap用于缓解内存压力,zram提供内存压缩,而zswap则作为swap的前端缓冲。文章还提到swappiness的设置对内存回收的影响,以及在不同场景下选择swap的策略。

🎯

关键要点

  • swap机制用于将匿名页搬到磁盘或压缩后端,以释放物理内存。

  • swap分区的性能略优于swap文件,优先级高的swap先被使用。

  • swappiness参数影响内存回收时匿名页与文件页的扫描比例。

  • zram创建内存中的块设备,提供数据压缩存储,通常压缩比为2-3倍。

  • zswap是swap的前端压缩池,先将页压缩到内存池,满时再写入真实swap。

  • 在容器中,swap的使用需谨慎,尤其是数据库容器建议关闭swap。

  • 开启swap可以为内存压力提供缓冲,但在实时系统中可能导致不可接受的延迟。

延伸问答

什么是swap机制,它的作用是什么?

swap机制用于将匿名页搬到磁盘或压缩后端,以释放物理内存。

zram和zswap有什么区别?

zram是创建内存中的块设备,提供数据压缩存储;而zswap是swap的前端压缩池,先将页压缩到内存池,满时再写入真实swap。

如何配置zram?

可以通过命令modprobe zram创建zram设备,然后设置压缩算法和磁盘大小,最后使用mkswap和swapon命令启用。

swappiness参数的作用是什么?

swappiness参数影响内存回收时匿名页与文件页的扫描比例,决定了系统在何种情况下使用swap。

在容器中使用swap时需要注意什么?

在容器中使用swap需谨慎,尤其是数据库容器建议关闭swap,以避免不可预测的延迟。

开启swap的优缺点是什么?

开启swap可以为内存压力提供缓冲,但在实时系统中可能导致不可接受的延迟,尤其是数据库等关键应用。

➡️

继续阅读