Ubuntu Swapper如何提升
导读:Ubuntu 交换空间性能优化指南 一 核心原则与快速判断 目标是减少慢速磁盘交换、提升命中率与响应:优先利用内存压缩(zram/zswap),必要时再使用SSD/NVMe上的交换文件,并合理设置swappiness与vfs_cache_...
Ubuntu 交换空间性能优化指南
一 核心原则与快速判断
- 目标是减少慢速磁盘交换、提升命中率与响应:优先利用内存压缩(zram/zswap),必要时再使用SSD/NVMe上的交换文件,并合理设置swappiness与vfs_cache_pressure。
- 快速判断当前状态:
- 查看交换与内存:free -h
- 查看交换设备与优先级:swapon --show 或 cat /proc/swaps
- 观察换入换出频率:vmstat 1(关注 si/so)
- 查看当前策略:cat /proc/sys/vm/swappiness 与 cat /proc/sys/vm/vfs_cache_pressure
- 若需重建大文件,先关闭全部交换:swapoff -a(注意可能导致内存紧张)
二 提升性能的实用做法
- 启用并优先使用 zram(内存内压缩交换,延迟最低)
- 检查模块:lsmod | grep zram
- 启用示例(创建 2–4 个压缩块,按内存与负载调整):
- sudo modprobe zram num_devices=2
- echo lz4 > /sys/block/zram0/comp_algorithm
- echo 4G > /sys/block/zram0/disksize
- sudo mkswap /dev/zram0 & & sudo swapon -p 32767 /dev/zram0
- 建议作为“第一优先级”交换设备,再叠加磁盘交换以防内存耗尽。
- 启用 zswap(内核级压缩缓存,减少磁盘写入)
- 编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX_DEFAULT 中添加:zswap.enabled=1 zswap.compressor=lz4
- 更新并重启:sudo update-grub & & sudo reboot
- 适合已有磁盘交换的场景,能显著降低写入量与延迟波动。
- 调整 swappiness(降低对磁盘交换的依赖)
- 临时:sudo sysctl vm.swappiness=10
- 永久:echo “vm.swappiness=10” | sudo tee -a /etc/sysctl.conf & & sudo sysctl -p
- 桌面/交互负载常用 10–30;纯计算/内存充裕可更低;内存紧张或休眠需求可适当提高。
- 调整 vfs_cache_pressure(更积极回收目录/索引节点缓存,释放内存给应用)
- 临时:sudo sysctl vm.vfs_cache_pressure=50
- 永久:echo “vm.vfs_cache_pressure=50” | sudo tee -a /etc/sysctl.conf & & sudo sysctl -p
- 默认值通常为 100,降低可提升文件元数据缓存命中,减少磁盘访问。
- 选择更快的交换介质与合理大小
- 优先使用SSD/NVMe;机械盘仅作兜底。
- 交换大小经验值:内存 ≤ 2GB 可配到内存的2倍;2–8GB 配到与内存等大;> 8GB 一般 4–8GB 即可(桌面/休眠可适当放大)。
- 配置交换优先级与多交换设备
- 磁盘交换优先级应低于 zram:sudo swapon -p 1 /swapfile(zram 使用 -p 32767)
- 多交换设备时,优先级高的先被使用,能显著改善交互体验。
三 创建与调整交换文件的标准流程
- 创建交换文件(示例 8GB)
- 建议先关闭全部交换:swapoff -a
- 创建文件:sudo fallocate -l 8G /swapfile(若失败可用 dd if=/dev/zero of=/swapfile bs=1M count=8192)
- 设置权限:sudo chmod 600 /swapfile
- 格式化:sudo mkswap /swapfile
- 启用:sudo swapon /swapfile
- 开机自动挂载:echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab
- 调整大小(增大或缩小)
- 增大:按上述流程创建更大的文件,启用新文件后 swapoff 旧文件并删除
- 缩小:swapoff 后 truncate/dd 到目标大小,再 mkswap/swapon
- 验证:swapon --show、free -h、cat /proc/swaps
四 监控与排错要点
- 关键指标与命令
- 内存与交换:free -h
- 交换设备与优先级:swapon --show、cat /proc/swaps
- 换入换出与系统概况:vmstat 1、sar -S(若安装 sysstat)
- 策略参数:cat /proc/sys/vm/swappiness、cat /proc/sys/vm/vfs_cache_pressure
- 常见问题处理
- 创建大文件失败:检查可用空间(df -h),必要时改用 dd
- 休眠需求:交换空间应≥物理内存;优先使用 swapfile 或专用分区,并确保 UUID/路径在 /etc/fstab 正确
- 频繁换入换出(si/so 持续不为 0):增加内存、提高 zram 大小、适度降低 swappiness、优化应用内存占用
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Swapper如何提升
本文地址: https://pptw.com/jishu/772811.html
