配置 zram 压缩交换分区

在内存中创建一块压缩交换设备,让系统在内存吃紧时不用频繁读写慢速磁盘。

Linux交换空间zram 内存压缩交换性能内存中风险
加载 zram 模块、设定大小、格式化为 swap 并以高优先级启用——换出的页面会被压缩存放在内存里,而不是写到磁盘上。

01命令

命令
$ sudo modprobe zram && echo lz4 | sudo tee /sys/block/zram0/comp_algorithm && echo 4G | sudo tee /sys/block/zram0/disksize && sudo mkswap /dev/zram0 && sudo swapon -p 100 /dev/zram0

02作用说明

zram 会在内存里模拟一个块设备,写入其中的数据会被压缩保存。当内核需要换出内存页时,会优先使用高优先级(100)的 zram,因为在内存里解压比从磁盘读取快得多。Fedora 和 ChromeOS 出厂就默认启用 zram。用 zramctl 可以查看压缩率和使用量。

03风险

风险中风险
使用条件Linux kernel with zram module; lz4 kernel module; root access. Most distros offer a zram-generator package that makes this permanent.
!注意: zram 不会凭空增加内存——压缩后的数据仍占用内存。大小一般设为物理内存的 50%–100%,并保留一小块磁盘 swap 兜底。上述设置重启后失效,想长期使用请安装 zram-generator 并写好配置。

04撤销

撤销
$ sudo swapoff /dev/zram0 && echo 1 | sudo tee /sys/block/zram0/reset && sudo modprobe -r zram

05来源

  • Zram - ArchWiki
    Arch Wiki · community · 2026-09-17
    依据: Documents creating a zram device, setting the compression algorithm and disksize via /sys/block/zram0, running mkswap and swapon with priority.
  • zramctl(8) - setup and control zram devices
    Ubuntu Manpages · community · 2026-09-17
    依据: zramctl inspects zram devices; the kernel zram module exposes comp_algorithm, disksize and reset sysfs attributes used to configure the device.

最后验证: 2026-09-18 · 分类: 系统与设置

06相关方案