ubuntu swap如何优化设置
导读:Ubuntu 交换空间优化设置指南 一 基线评估与监控 查看当前状态与位置 查看内存与交换使用:free -h 查看已启用的交换:sudo swapon --show 查看交换设备详情:cat /proc/swaps 观察是否存在频...
Ubuntu 交换空间优化设置指南
一 基线评估与监控
- 查看当前状态与位置
- 查看内存与交换使用:
free -h - 查看已启用的交换:
sudo swapon --show - 查看交换设备详情:
cat /proc/swaps
- 查看内存与交换使用:
- 观察是否存在频繁换入换出
- 使用
vmstat 1关注 si(swap in)与 so(swap out),持续非零表示磁盘交换频繁,需优先优化内存占用或调整策略。
- 使用
二 交换使用倾向 vm.swappiness 与缓存压力
- 查看与临时调整
- 查看:
cat /proc/sys/vm/swappiness(默认多为 60) - 临时设为 10:
sudo sysctl vm.swappiness=10
- 查看:
- 永久生效
- 写入配置:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
- 写入配置:
- 桌面与交互体验
- 桌面用户常将 swappiness 调低(如 10)以减少卡顿;服务器可按负载适当降低,避免不必要的磁盘 I/O。
- 可选 缓存压力
- 适度降低可回收的 VFS 目录项缓存压力:
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf,有助于在高内存占用下保持流畅。
- 适度降低可回收的 VFS 目录项缓存压力:
三 交换空间大小与实现方式
- 大小建议(按内存容量与用途)
- ≤ 2GB:2× 内存
- 2–8GB:≈ 内存大小
- > 8–64GB:4–8GB
- > 64GB:1–4GB 或视业务/OOM 策略考虑禁用;若需休眠(Hibernate),交换空间需 ≥ 物理内存
- 实现方式选择
- 优先使用 Swap 文件(灵活调整大小);传统 Swap 分区性能略优但调整困难;大内存场景可结合 Zswap(内核 4.0+)在内存中先压缩页面,减少磁盘写入。
四 实操 创建或调整 Swap 文件
- 创建与启用(示例 8GB)
- 创建:
sudo fallocate -l 8G /swapfile(若失败可用sudo dd if=/dev/zero of=/swapfile bs=1G count=8) - 权限:
sudo chmod 600 /swapfile - 格式化:
sudo mkswap /swapfile - 启用:
sudo swapon /swapfile - 验证:
free -h、sudo swapon --show
- 创建:
- 永久生效
- 追加到
/etc/fstab:echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
- 追加到
- 调整大小(增大/缩小)
- 先停用:
sudo swapoff -a - 备份并重建所需大小的 Swap 文件(如上),再
swapon -a - 如替换旧交换,记得从
/etc/fstab移除旧条目。
- 先停用:
五 进阶 启用 Zswap 与常见场景建议
- 启用 Zswap(减少磁盘 I/O,适合 SSD/NVMe)
- 编辑
/etc/default/grub,在GRUB_CMDLINE_LINUX添加:zswap.enabled=1 zswap.compressor=lz4 - 更新并重启:
sudo update-grub & & sudo reboot
- 编辑
- 场景化建议
- 桌面/交互优先:适度降低 swappiness,必要时启用 Zswap,将交换放在 SSD 上以降低卡顿。
- 服务器/数据库:内存充足时将 swappiness 设为 10 左右,避免频繁换页;若内存极大(如 > 64GB)且业务可控,可仅保留少量交换或禁用,并配合监控告警与 OOM 策略。
- 休眠需求:确保交换空间 ≥ RAM 容量,否则无法完整休眠。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu swap如何优化设置
本文地址: https://pptw.com/jishu/789305.html
