# 💾 Linux 启用 ZRAM + 磁盘 Swap 完整配置(Markdown 笔记)
> 适用系统:Debian / Ubuntu / GCP 小实例
> 作用:提升系统在低内存环境的稳定性、减少 OOM
---
## 🧩 一、安装 ZRAM 工具
```bash
sudo apt update
sudo apt install zram-tools -y
```
---
## ⚙️ 二、配置 ZRAM 参数
编辑配置文件:
```bash
sudo nano /etc/default/zramswap
```
修改为如下内容:
```bash
# 进去修改三项就行 size注释不变
```
保存并退出:
`Ctrl + O` → 回车 → `Ctrl + X`
---
## 🚀 三、启用并验证 ZRAM
```bash
sudo systemctl enable zramswap --now
sudo systemctl restart zramswap
zramctl
swapon --show
free -m
```
尽可能进入zram:
```bash
echo "vm.swappiness = 200" | sudo tee /etc/sysctl.d/99-zram-aggressive.conf
sudo sysctl --load=/etc/sysctl.d/99-zram-aggressive.conf
echo "vm.page-cluster = 0" | sudo tee -a /etc/sysctl.d/99-zram-aggressive.conf
sudo sysctl -p /etc/sysctl.d/99-zram-aggressive.conf
```
---
## 💾 四、创建磁盘 Swap(备用用)
1. **创建 1G swap 文件**
```bash
sudo fallocate -l 1G /swapfile
# 若不支持 fallocate,可用:
# sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
```
2. **设置权限**
```bash
sudo chmod 600 /swapfile
```
3. **格式化为 swap 类型**
```bash
sudo mkswap /swapfile
```
4. **启用 swap**
```bash
sudo swapon /swapfile
```
5. **查看状态**
```bash
swapon --show
free -h
```
输出示例:
```
NAME TYPE SIZE USED PRIO
/dev/zram0 zram 485M 0B 100
/swapfile file 1G 0B 10
```
---
## 🔁 五、让 swap 文件永久生效
```bash
sudo bash -c 'echo "/swapfile none swap sw,pri=10 0 0" >> /etc/fstab'
```
---
## 🧠 六、检查当前所有 swap
```bash
swapon --show
free -m
```
若看到两行(zram 和 swapfile),说明双层 swap 配置完成 ✅
---
## 📊 七、性能建议
| 条目 | 建议值 |
|------|---------|
| ZRAM 比例(`PERCENT`) | 50%~75% 内存 |
| ZRAM 压缩算法 | `lz4`(推荐)或 `zstd`(更高压缩比) |
| ZRAM 优先级 | 100 |
| 磁盘 swapfile 优先级 | 10 |
| 单实例内存 ≤2 GB | 强烈推荐开启 ZRAM |
| swapfile 大小 | 1 GB 或更大视需求而定 |
---
## 🧰 八、关闭或重启 ZRAM
```bash
sudo systemctl stop zramswap
sudo swapoff /dev/zram0
sudo systemctl start zramswap
```
---
## ✅ 九、检查日志(可选)
```bash
sudo journalctl -u zramswap | tail -20
```
可以看到启动时的分配大小、算法等信息。
---
**总结:**
> 💡 推荐组合配置:
> - `/dev/zram0` → 高速压缩内存 swap(priority=100)
> - `/swapfile` → 磁盘补充 swap(priority=10)
>
> ⚙️ 在 GCP 或 1 GB 内存以下主机上特别有效。