Ubuntu Swap优化有哪些方法
导读:Ubuntu Swap优化实用指南 一 基础检查与监控 查看内存与 Swap 概览:free -h 查看已启用的 Swap:swapon --show 或 cat /proc/swaps 观察是否存在频繁换入换出:vmstat 1(关注...
Ubuntu Swap优化实用指南
一 基础检查与监控
- 查看内存与 Swap 概览:
free -h - 查看已启用的 Swap:
swapon --show或cat /proc/swaps - 观察是否存在频繁换入换出:
vmstat 1(关注 si/so,持续不为 0 表示磁盘 Swap 压力大) - 用途:快速判断是否需要扩容、调参或改用更快的 Swap 方案。
二 调整 Swap 大小与位置
- 创建 Swap 文件(示例 4GB):
sudo fallocate -l 4G /swapfile- 如
fallocate失败,改用sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
- 设置权限与启用:
sudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfile
- 开机自动挂载:在 /etc/fstab 追加
/swapfile none swap sw 0 0 - 调整现有 Swap 文件大小(示例扩到 8GB):
sudo swapoff /swapfile- 重建/调整文件(如
fallocate -l 8G /swapfile或dd if=/dev/zero of=/swapfile bs=1M count=8192) sudo mkswap /swapfile & & sudo swapon /swapfile
- 使用 Swap 分区时的要点:用 GParted/fdisk 新建 swap 分区 →
sudo mkswap /dev/sdX→sudo swapon /dev/sdX→ 在 /etc/fstab 添加对应条目 - 性能提示:优先使用 SSD/NVMe 存放 Swap,能显著降低访问延迟。
三 内核参数与压缩机制调优
- 调整 swappiness(控制内核换出倾向,范围 0–100,默认 60):
- 查看:
cat /proc/sys/vm/swappiness - 临时:
sudo sysctl vm.swappiness=10 - 永久:在 /etc/sysctl.conf 添加
vm.swappiness=10并执行sudo sysctl -p - 经验值:桌面常用 10–30;服务器倾向 10;若需尽量使用内存可设 0(风险是更易触发 OOM)
- 查看:
- 启用 Zswap(内核 4.0+,在内存中先压缩页,减少磁盘 I/O):
- 编辑 /etc/default/grub:在
GRUB_CMDLINE_LINUX加入zswap.enabled=1 zswap.compressor=lz4 - 更新并重启:
sudo update-grub & & sudo reboot
- 编辑 /etc/default/grub:在
- 可选 Zram(将压缩块设备用作 Swap,适合内存较紧的环境):在新版本 Ubuntu 中可安装并启用 zram 组件以获得更快的“内存内”交换。
四 容量建议与取舍
- 常见经验(按物理内存容量):
- ≤ 2GB:Swap ≈ 2 × 内存(小内存设备必备)
- 2–8GB:Swap ≈ 内存大小(平衡)
- > 8GB:Swap ≈ 4–8GB(大内存仅作应急)
- 服务器 > 64GB:可禁用或仅 1–4GB(依赖 OOM Killer 管理)
- 使用场景补充:需要休眠的设备必须配置不小于内存容量的 Swap;云服务器/容器常依赖 Swap 应对短时峰值。
五 故障排查与注意事项
- 调整大小前先
sudo swapoff -a,变更后再sudo swapon -a;编辑 /etc/fstab 务必谨慎,错误的 Swap 条目可能导致无法启动 - 频繁使用磁盘 Swap 导致卡顿时,优先检查是否有内存泄漏/异常进程,配合
vmstat 1、top等定位 - 使用 SSD 时关注写入放大与寿命;如为机械盘,优先减少 Swap 使用或迁移到更快的存储
- 不建议长期将
vm.swappiness=0,在内存紧张时更易触发 OOM Killer 终止进程。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Swap优化有哪些方法
本文地址: https://pptw.com/jishu/766377.html
