给小内存 Linux 服务器开启 ZRAM:低成本提升内存利用率
现在很多小 VPS、NAS 或家用服务器内存都不大,服务一多,后台就容易开始抢内存。
这时候开个 ZRAM 往往能明显缓解压力。
简单来说:
ZRAM 会拿出一部分内存,做成“压缩版 Swap”。
系统会优先把不常用的数据压缩后放进 ZRAM,而不是直接写进硬盘 Swap。
因为数据还在内存里,所以速度会比传统 Swap 快很多。
对于小内存机器来说挺实用。
Debian 开启 ZRAM
现在主流 Linux 基本都已经支持,不需要自己编译内核。
下面以 Debian 为例。
安装
apt update
apt install zram-tools修改配置
编辑配置文件:
nano /etc/default/zramswap修改下面几项:
ALGO=zstd
PERCENT=100
PRIORITY=100参数说明:
ALGO=zstd
使用 zstd 压缩算法,压缩率比较高PERCENT=100
ZRAM 大小设为物理内存的 100%PRIORITY=100
提高优先级,让系统优先使用 ZRAM
重启服务
systemctl restart zramswap调整 Swap 策略(推荐)
如果机器本身开了 Swap,可以顺手调一下内核参数。
新建配置文件:
nano /etc/sysctl.d/99-zram.conf写入:
vm.swappiness = 100
vm.page-cluster = 0
vm.watermark_boost_factor = 0
vm.watermark_scale_factor = 125然后执行:
sysctl --system查看是否生效
查看当前 Swap:
swapon --show正常会看到:
/dev/zram0再看详细状态:
zramctl其中:
DATA
压缩前的数据量TOTAL
实际占用的物理内存
如果压缩率不错,经常能省下来不少内存。
压缩算法怎么选
zstd
优点:
- 压缩率高
- 更省内存
缺点:
- 会稍微多吃一点 CPU
大多数情况直接用这个就行。
lz4
优点:
- 速度非常快
- CPU 占用低
缺点:
- 压缩率一般
如果机器 CPU 比较弱,可以考虑换成 lz4。
查看系统支持哪些算法
cat /sys/block/zram0/comp_algorithm示例:
lzo lzo-rle lz4 lz4hc [zstd]带 [] 的是当前正在使用的算法。
关于 zram-tools
现在很多新系统已经开始用:
zram-generator相比之下:
zram-tools 维护频率已经不算高了不过 Debian 上目前还是够稳定、够省事。
适合哪些场景
- 小内存 VPS
- NAS
- Docker 宿主机
- 多服务混跑
- 轻量数据库
- 开发环境
总结
如果你的机器:
- 内存不大
- 服务跑得不少
- 经常吃满内存
那 ZRAM 基本算是很值得开的优化项。
配置不复杂,但很多时候能明显减轻内存压力。
2q9uz6
aipv36
nu70ch
yhwpib
nekrlhvlvzigvtnugqwnklqmtwiilv
uyjlshfroihgnrokdykquztiyuxpsm