低内存机器的内存优化(针对 Cursor 与 Edge)
本方案面向物理内存约 3–4GB 的桌面环境,重点优化 Cursor 与 Edge 的前台流畅度:统一由 zramswap 管理压缩交换、扩大 ZRAM 容量、使用更高压缩率算法(zstd)、并调整内核策略优先使用 ZRAM,减少卡顿与早期 OOM。
一键优化脚本(建议直接复制运行)
说明:需要 sudo 密码,会自动处理冲突并持久化参数。
sudo bash -c '
set -e
echo "[1/4] 统一 ZRAM 管理:停用 zram-config,改用 zramswap"
systemctl disable --now zram-config.service 2>/dev/null || true
systemctl mask zram-config.service 2>/dev/null || true
systemctl enable zramswap.service 2>/dev/null || true
echo "[2/4] 配置 zramswap:算法 zstd、容量=内存 100%、优先级高"
conf=/etc/default/zramswap
if [ -f "$conf" ]; then
sed -i -E "s/^ALGO=.*/ALGO=zstd/" "$conf"
if grep -q "^PERCENT=" "$conf"; then
sed -i -E "s/^PERCENT=.*/PERCENT=100/" "$conf"
else
echo "PERCENT=100" >> "$conf"
fi
if grep -q "^#?PRIORITY=" "$conf"; then
sed -i -E "s/^#?PRIORITY=.*/PRIORITY=100/" "$conf"
else
echo "PRIORITY=100" >> "$conf"
fi
else
cat >/etc/default/zramswap <<EOF
ALGO=zstd
PERCENT=100
PRIORITY=100
EOF
fi
echo "[3/4] 重新创建 ZRAM 并设置为首选交换(如已在用会重建)"
swapoff /dev/zram0 2>/dev/null || true
systemctl restart zramswap.service
echo "[4/4] 调整内核内存策略(优先使用 ZRAM,避免过早 OOM)"
# 提升 swappiness 让内存压力高时优先使用 ZRAM;适合低内存桌面
sysctl -w vm.swappiness=80
# 提高缓存回收力度(默认为 50);可视需要调回
sysctl -w vm.vfs_cache_pressure=100
cat >/etc/sysctl.d/99-zram-tuning.conf <<EOF
vm.swappiness=80
vm.vfs_cache_pressure=100
EOF
systemctl daemon-reload
echo "完成。建议使用一会儿后重启一次以确保干净状态。"
'
验证是否生效与持久化
# 当前内核参数应为 swappiness=80、vfs_cache_pressure=100
sysctl vm.swappiness vm.vfs_cache_pressure
# zramswap 应启用并运行,zram-config 应为 masked/inactive
systemctl is-enabled zramswap && systemctl is-active zramswap
systemctl is-enabled zram-config 2>/dev/null || true
systemctl is-active zram-config 2>/dev/null || true
# ZRAM 应该 ≈ 物理内存大小,算法为 zstd,优先级高
zramctl
swapon --show --noheadings --output NAME,TYPE,SIZE,USED,PRIO
预期结果(示例):
/dev/zram0
大小 ≈ 物理内存(例如 3.3G),算法zstd
;zramswap: enabled/active
,zram-config: masked/inactive
;vm.swappiness = 80
、vm.vfs_cache_pressure = 100
;swapon
显示/dev/zram0
的 PRIO 高于磁盘 swap。
可选参数调优(按需微调)
- PERCENT:
100
(更激进,ZRAM 更大)、75
(更保守,CPU 压缩负载更低)。 - vm.swappiness:
60–80
之间折中。若磁盘较慢,建议高一些;若 CPU 很弱,可适度降低。 - vfs_cache_pressure:
50–100
。高值更愿意回收缓存以让位程序内存。
修改后可执行:
sudo systemctl restart zramswap.service
sudo sysctl --system >/dev/null
还原方案(可随时撤回)
sudo bash -c '
# 还原 zramswap 配置为更保守的默认
sed -i -E "s/^ALGO=.*/ALGO=lz4/" /etc/default/zramswap || true
sed -i -E "s/^PERCENT=.*/PERCENT=50/" /etc/default/zramswap || true
sed -i -E "s/^#?PRIORITY=.*/PRIORITY=100/" /etc/default/zramswap || true
# 还原内核参数
sysctl -w vm.swappiness=10
sysctl -w vm.vfs_cache_pressure=50
rm -f /etc/sysctl.d/99-zram-tuning.conf
sysctl --system >/dev/null || true
# 如需重新启用 zram-config(可选)
# systemctl disable --now zramswap.service
# systemctl unmask zram-config.service
# systemctl enable --now zram-config.service
'
注意事项
- ZRAM 通过压缩换取更大的“有效内存”,会占用少量 CPU 资源,但通常换来更少卡顿与更少的磁盘交换。
- 当前台是 Cursor/Edge 且标签/项目较多时,该配置能显著提升稳定性与响应性。
- 极端满载时仍可能落到磁盘 swap,这属于正常保护行为;建议合理控制同时打开的标签与扩展。