zram 压缩内存 swap 配置实战:低内存服务器性能提升指南 zram 压缩内存 swap 配置实战低内存服务器性能提升指南在内存资源有限的服务器上传统的磁盘 swap 分区虽然能扩展可用内存但由于磁盘 I/O 速度远低于内存一旦系统频繁使用 swap性能会急剧下降。zram 是 Linux 内核内置的压缩内存模块它在 RAM 中创建一个压缩块设备作为 swap 使用读写速度比磁盘 swap 快数十倍同时通过压缩算法有效扩展了可用内存容量。对于 1GB 或 2GB 内存的轻量级 VPS 来说zram 几乎是必备优化手段。本文将详细介绍如何配置 zram 压缩内存选择合适的压缩算法lz4、zstd 等并通过 systemd 实现开机自动挂载最终实现内存利用效率的显著提升。本文适用于 Ubuntu 20.04/22.04/24.04、Debian 11/12 等主流 Linux 发行版配置方法通用大多数情况下无需重启即可生效。服务器配置本文实验环境基于雨云服务器 rainyun-com的低配机型。注册填优惠码2026off领 5 折优惠券可以非常低的价格获得稳定的云服务器。推荐配置1 核 2GB 内存 Linux 云服务器该机型完全满足 zram 实验和生产部署需求。1 核 CPU 能流畅运行大多数轻量应用2GB 物理内存搭配 zram 后实际可用内存可以提升 30%50%支持更多并发进程。安装准备检查内核支持现代 Linux 发行版内核 3.14均内置 zram 模块无需额外安装# 检查内核版本uname-r# 检查 zram 模块是否可用modprobe zram lsmod|grepzram安装辅助工具# Ubuntu/Debianaptupdateaptinstall-yutil-linux zram-tools# CentOS/Rocky Linuxdnfinstall-yutil-linux查看当前 swap 状态free-hswapon--showcat/proc/swaps部署步骤方法一使用 zramctl 手动配置zramctl是 util-linux 提供的 zram 管理工具操作简便# 加载 zram 模块创建 1 个设备modprobe zramnum_devices1# 设置压缩算法为 lz4速度最快echolz4/sys/block/zram0/comp_algorithm# 设置 zram 设备大小为物理内存的 50%本例为 1GBecho1G/sys/block/zram0/disksize# 格式化为 swapmkswap/dev/zram0# 启用 swap优先级设为 100高于磁盘 swap 的默认值 -2swapon-p100/dev/zram0# 验证swapon--showfree-h方法二使用 zram-tools 快速配置UbuntuUbuntu 提供了zram-config包可以一键配置aptinstall-yzram-config systemctlenablezram-config systemctl start zram-config默认会创建等于物理内存一半大小的 zram swap。查看 zram 设备状态# 查看所有 zram 设备详细信息zramctl# 输出示例# NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT# /dev/zram0 lz4 1G 512M 180M 200M 2 [SWAP]# 查看压缩比cat/sys/block/zram0/compr_data_sizecat/sys/block/zram0/orig_data_size核心功能配置压缩算法选择zram 支持多种压缩算法各有侧重# 查看当前内核支持的算法cat/sys/block/zram0/comp_algorithm# 输出示例lzo lzo-rle [lz4] lz4hc zstd# 切换算法设备未使用时才能切换swapoff /dev/zram0echozstd/sys/block/zram0/comp_algorithmswapon-p100/dev/zram0各算法对比算法压缩速度解压速度压缩率推荐场景lz4极快极快一般低内存、高并发lz4hc较快极快较好均衡场景zstd中等快优秀内存充裕、追求压缩率lzo快快一般兼容性优先建议1 核 2GB 机器优先选lz4追求内存扩展效果时选zstd。调整 swappinessvm.swappiness控制内核使用 swap 的积极程度取值 0-200# 查看当前值默认 60cat/proc/sys/vm/swappiness# 临时修改推荐 zram 场景设为 80-100因为 zram 速度接近内存sysctl-wvm.swappiness80# 永久生效echovm.swappiness80/etc/sysctl.d/99-zram.confsysctl-p/etc/sysctl.d/99-zram.confsystemd 持久化配置开机自动挂载 zram swap 有两种方式。方式一systemd service 脚本创建配置文件cat/etc/systemd/system/zram-swap.serviceEOF [Unit] Descriptionzram swap Afterlocal-fs.target [Service] Typeoneshot RemainAfterExityes ExecStart/bin/bash -c \ modprobe zram num_devices1; \ echo lz4 /sys/block/zram0/comp_algorithm; \ echo 1G /sys/block/zram0/disksize; \ mkswap /dev/zram0; \ swapon -p 100 /dev/zram0 ExecStop/bin/bash -c \ swapoff /dev/zram0; \ echo 1 /sys/block/zram0/reset [Install] WantedBymulti-user.target EOF启用服务systemctl daemon-reload systemctlenablezram-swap.service systemctl start zram-swap.service systemctl status zram-swap.service方式二使用 /etc/rc.local简单方式cat/etc/rc.localEOF # zram swap modprobe zram num_devices1 echo lz4 /sys/block/zram0/comp_algorithm echo 1G /sys/block/zram0/disksize mkswap /dev/zram0 swapon -p 100 /dev/zram0 EOFchmodx /etc/rc.local进阶用法多核并行压缩zram 从内核 5.x 起支持多线程压缩# 设置压缩线程数与 CPU 核心数匹配echo2/sys/block/zram0/max_comp_streams# 查看当前设置cat/sys/block/zram0/max_comp_streams同时保留磁盘 swap混合方案对于极端内存不足的场景可以同时使用 zram 和磁盘 swap# zram 高优先级先用swapon-p100/dev/zram0# 磁盘 swap 低优先级兜底swapon-p1/dev/sda2# 查看优先级swapon--show监控 zram 效果# 实时监控内存使用watch-n2free -h echo --- zramctl echo --- cat /proc/meminfo | grep -E SwapTotal|SwapFree|SwapCached# 查看压缩效率压缩比awk{if(NR1) orig$1; else comp$1; if(NR2) printf 压缩比: %.2f:1\n, orig/comp}\(cat/sys/block/zram0/orig_data_size /sys/block/zram0/compr_data_size)性能对比在 1 核 2GB 服务器上的实测数据指标磁盘 swap (HDD)磁盘 swap (SSD)zram (lz4)zram (zstd)读取速度~80 MB/s~400 MB/s~3000 MB/s~2200 MB/s写入速度~60 MB/s~300 MB/s~2500 MB/s~1800 MB/s内存利用率100%100%~150%压缩后~180%压缩后CPU 额外开销极低极低低中等zram (lz4) 的读写速度约为 SSD swap 的 7-8 倍几乎不会感知到 swap 延迟。常见问题排查Qecho 1G /sys/block/zram0/disksize报 Permission denied# 确保以 root 运行或使用 sudosudobash-cecho 1G /sys/block/zram0/disksizeQmodprobe zram 后看不到 /dev/zram0# 检查内核模块lsmod|grepzram# 手动创建设备modprobe zramnum_devices1ls/dev/zram*Q设备已在使用无法修改参数# 必须先关闭 swap 再重置swapoff /dev/zram0echo1/sys/block/zram0/reset# 然后重新配置Q重启后 zram 消失确认 systemd 服务已正确启用systemctl is-enabled zram-swap.service# 应输出 enabledQzstd 算法不可用部分旧内核版本不支持 zstd检查cat/sys/block/zram0/comp_algorithm# 括号内为当前使用算法列表中没有 zstd 则说明不支持改用 lz4如果你正在寻找适合运行 zram 优化方案的低价云服务器雨云服务器 rainyun-com的 1 核 2GB 机型性价比极高注册时填写优惠码2026off可领取 5 折优惠券是部署轻量应用和学习 Linux 运维的理想平台。