【操作系统百科】交换
💡
原文中文,约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可以为内存压力提供缓冲,但在实时系统中可能导致不可接受的延迟,尤其是数据库等关键应用。
➡️