Debunking Zswap and Zram Myths
2 months ago
- #Linux
- #Performance
- #Memory Management
- 除非有特殊理由需要使用zram,否则建议优先选择zswap
- zswap与内核内存管理集成,压缩RAM中的页面,并将冷数据分层存储到磁盘
- zram作为有固定容量限制的压缩RAM块设备,满载时可能导致OOM或LRU倒置问题
- 避免zram与磁盘交换分区同时运行,这会导致活跃工作集被推至慢速磁盘而冷页却留在快速RAM中
- 若使用zram,建议配合systemd-oomd或earlyoom等用户空间OOM管理器
- zram在服务器环境中存在内存使用隔离和cgroup隔离问题
- zswap能自动在压缩RAM和磁盘之间分层存储数据,在内存压力下优雅降级
- zram的块设备架构使其像普通存储设备一样工作,导致诸如不必要预读等低效行为
- zswap通过与内存管理集成,可根据压力动态平衡LRU
- 当zram被冷数据填满时会发生LRU倒置,迫使热数据写入磁盘,性能急剧下降
- zram虽然支持回写功能,但需手动配置且缺乏自动分层机制
- zswap通过拒绝压缩率低的页面并将其发送至磁盘,能更好地处理不可压缩数据
- 使用zram可能通过将压力转移至页缓存而增加SSD磨损,导致更多磁盘I/O
- zswap通过充当写入缩减过滤器来减少磁盘写入,可吸收高频页面瞬态
- 出于安全考虑,Fedora默认采用纯zram方案以避免敏感数据持久化存储
- 由于与内核内存管理更好集成及优雅降级特性,zswap适用于大多数使用场景