首页主机资讯如何优化Ubuntu的Swapper性能

如何优化Ubuntu的Swapper性能

时间2026-01-21 11:36:04发布访客分类主机资讯浏览1010
导读:优化 Ubuntu 的 Swapper 性能 一 核心思路与快速检查 明确目标:减少磁盘 I/O、降低换页延迟、避免内存紧张导致的卡顿或 OOM。 快速检查当前状态: 查看交换设备与大小:sudo swapon --show 查看内存与...

优化 Ubuntu 的 Swapper 性能

一 核心思路与快速检查

  • 明确目标:减少磁盘 I/O、降低换页延迟、避免内存紧张导致的卡顿或 OOM。
  • 快速检查当前状态:
    • 查看交换设备与大小:sudo swapon --show
    • 查看内存与交换使用:free -h
    • 查看当前 swappiness:cat /proc/sys/vm/swappiness
  • 原则:优先减少不必要的换页;在内存不足时有足够的“安全垫”;让更快的交换介质(如 zram)优先使用。

二 关键参数调优

  • 调整 swappiness(换页倾向)
    • 临时设置:sudo sysctl vm.swappiness=10
    • 永久生效:在 /etc/sysctl.conf 中添加 vm.swappiness=10,执行 sudo sysctl -p
    • 经验值参考:桌面环境可设 10–40;内存充足且希望尽量使用物理内存的服务器可更低;内存较小或希望更早换出可更高。Ubuntu 18.04 默认值常为 60。调得过低可能在内存紧张时更易触发 OOM,需结合监控逐步微调。
  • 使用 zram 优先于磁盘交换(强烈推荐)
    • 安装与启用:sudo apt install zram-tools,安装后通常已自动启用。
    • 配置建议(编辑 /etc/default/zramswap):
      • 压缩算法:ALGO=lz4(速度优先;追求压缩率可选 zstd,CPU 更强时更合适)
      • 占用内存比例:PERCENT=20%(示例;可按内存大小调整)
      • 优先级:PRIORITY=100(确保 zram 优先于磁盘 swap)
    • 使配置生效:sudo systemctl restart zramswap.service
    • 故障排查:若重启失败提示“设备或资源忙”,可先执行
      • sudo swapoff -a
      • sudo modprobe -r zram 2> /dev/null || true
      • sudo rm -f /dev/zram*
      • sudo modprobe zram num_devices=1
      • 再重启服务 sudo systemctl restart zramswap.service
    • 说明:zram 在内存中压缩交换,速度快、减少磁盘写入,适合作为第一层交换;磁盘 swap 作为后备。

三 交换空间大小与介质选择

  • 何时需要增大交换空间
    • 出现内存紧张且 free -h 显示 Swap 已接近用尽,或系统出现明显卡顿、OOM。
    • 需要支持休眠(hibernate)时,交换空间应不小于物理内存大小。
  • 调整交换大小(以 swapfile 为例)
    • 关闭现有交换:sudo swapoff -a
    • 创建新的交换文件(示例 16G):
      • sudo fallocate -l 16G /swapfile(若失败可用 sudo dd if=/dev/zero of=/swapfile bs=1G count=16
    • 设置权限与格式化:sudo chmod 600 /swapfile & & sudo mkswap /swapfile
    • 启用:sudo swapon /swapfile
    • 开机自动挂载:在 /etc/fstab 添加 /swapfile none swap sw 0 0
    • 验证:sudo swapon --showfree -h
  • 介质与容量建议
    • 优先使用 zram 作为第一层交换;磁盘交换作为后备。
    • 传统经验是交换空间约为内存的 1–2 倍,但在内存较大的现代桌面/服务器上不必盲目追求大文件,更应依赖 zram 与合理的 swappiness。
    • 休眠需求:交换大小 ≥ 物理内存;无休眠需求则以“能覆盖短时峰值”为宜,避免过度分配导致磁盘占用与性能下降。

四 监控与排错

  • 持续观察
    • 资源使用:free -htop/htopgnome-system-monitor
    • 交换设备:swapon --show
  • 常见问题处理
    • 修改 swappiness 不生效:确认写入到 /etc/sysctl.conf 并执行 sudo sysctl -p
    • 调整 swap 大小后未生效:确认 /etc/fstab 行正确、执行 sudo swapon -a
    • zram 启动失败:按上文“故障排查”步骤清理后重启服务
    • 频繁换页导致卡顿:适度降低 vm.swappiness,确认 zram 已启用且优先级更高,必要时增加 zram 的 PERCENT 或补充磁盘 swap 作为后备。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何优化Ubuntu的Swapper性能
本文地址: https://pptw.com/jishu/788526.html
Ubuntu中如何增加Swapper空间 lsnrctl如何优化Debian系统性能

游客 回复需填写必要信息