这份指南将帮助你在 Alpine Linux 上从零开始配置 zram。由于 Alpine 极其精简,手动确认内核支持是成功的关键。
Alpine Linux zram 配置完全手册
第一步:检查内核支持与压缩算法
在配置之前,必须确认内核是否加载了模块,以及支持哪些算法。
加载内核模块:
modprobe zram查看支持的算法:
cat /sys/block/zram0/comp_algorithm
- 输出示例:
lzo lzo-rle [lz4] zstd - 注意: 带有中括号
[]的是当前默认值。请记录下你看到的算法(推荐顺序:zstd>lz4>lzo)。
第二步:安装管理工具
安装 Alpine 官方提供的 zram 初始化脚本和基础工具包:
apk add zram-init util-linux
第三步:配置 zram 参数
编辑配置文件。如果你的内存较小(如 300MB),建议设置 zram 大小为内存的 1:1 或 1.5:1。
vi /etc/conf.d/zram-init
建议配置内容:
# 1. 设置设备数量(通常只需 1 个作为 Swap)
num_devices=1
# 2. 设置设备 0 的参数
type0=swap
flag0=
# 3. 设置算法(填入第一步中查到的支持算法,如 lz4 或 zstd)
algo0=lz4
# 4. 设置大小(单位 MB,建议 300)
size0=300
第四步:启动与开机自启
清理可能存在的残留手动设置,并启动服务:
重置并启动:
swapoff /dev/zram0 2>/dev/null rc-service zram-init restart设置开机自动加载:
rc-update add zram-init default
第五步:验证运行状态
使用以下两个命令确认 zram 是否正在为你工作:
查看 Swap 优先级:
swapon --show
- 确认
/dev/zram0的PRIO(优先级)高于其他的/swapfile(数值越大优先级越高)。
查看压缩统计:
zramctl
- DISKSIZE: 你设定的虚拟大小(如 300M)。
- DATA: 实际存入的数据。
- COMPR: 压缩后占用的物理内存。
💡 常见问题排查
- 报错
Invalid argument: 通常是algo0填写的算法内核不支持,请回到第一步重新确认。 - zram1 报错: 如果你不需要把
/tmp挂载到 zram,确保配置文件中注释掉所有以1结尾的变量(如type1,size1)。 - 内存依然不足: 可以尝试将
size0调大到物理内存的 2 倍,lz4 算法通常能处理这种压缩比。
附注(raymoon): 推荐使用alpine/debian通用的脚本,包括清理碎片等功能:
https://ytai.de/t/zram-debian-alpine/43