低内存机器的内存优化(针对 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

预期结果(示例):

可选参数调优(按需微调)

修改后可执行:

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
'

注意事项