内存不够用导致的卡顿#

使用systemd-oomd去管理内存#

⚙️ 为什么浏览器可能还会偶尔卡顿?#

systemd-oomd 的触发机制比较“宽容”:它会等待系统资源压力达到一定阈值(基于 PSI 指标)才行动。在它出手之前,你可能已经感受到了短暂的卡顿。这是为了避免误杀而做的平衡设计——如果阈值设得太低,可能你正在编辑的文档还没来得及保存就被杀掉了。

🛠️ 如果你想让它更“积极”一点#

可以调整 systemd-oomd 的配置,让它响应更快。不过需要注意:修改系统默认配置有一定风险,建议先在测试环境尝试。

  1. 查看当前配置:

    cat /etc/systemd/oomd.conf

    通常这个文件是空的或只有注释,所有默认值都编译在二进制中。

  2. 创建自定义配置(需要 root 权限):

    sudo mkdir -p /etc/systemd/system/systemd-oomd.service.d
    sudo tee /etc/systemd/system/systemd-oomd.service.d/override.conf <<EOF
    [Service]
    Environment=SYSTEMD_OOM_DEFAULT_MEM_PRESSURE_LIMIT=10%
    Environment=SYSTEMD_OOM_DEFAULT_MEM_PRESSURE_DURATION_USEC=1s
    EOF

    上面的设置会把内存压力阈值从默认的 50% 降低到 10%,且持续时间从 5s 缩短到 1s。这意味着系统会更敏感、更早出手。

  3. 重新加载并重启服务:

    sudo systemctl daemon-reload
    sudo systemctl restart systemd-oomd

✅ 总结#

  • 你的 systemd-oomd 已经正常工作了,系统大概率不会因为浏览器内存泄露而彻底卡死。
  • 如果你依然遇到明显卡顿,可以:
    • 调整 systemd-oomd 的灵敏度(如上所示)。
    • 或者安装 earlyoom 作为第二道防线:sudo dnf install earlyoom && sudo systemctl enable --now earlyoom。