首页主机资讯Ubuntu Swapper如何提升

Ubuntu Swapper如何提升

时间2025-12-16 14:26:03发布访客分类主机资讯浏览652
导读:Ubuntu 交换空间性能优化指南 一 核心原则与快速判断 目标是减少慢速磁盘交换、提升命中率与响应:优先利用内存压缩(zram/zswap),必要时再使用SSD/NVMe上的交换文件,并合理设置swappiness与vfs_cache_...

Ubuntu 交换空间性能优化指南

一 核心原则与快速判断

  • 目标是减少慢速磁盘交换、提升命中率与响应:优先利用内存压缩(zram/zswap),必要时再使用SSD/NVMe上的交换文件,并合理设置swappinessvfs_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
Ubuntu Swapper和Swap分区区别 如何自定义Debian lsnrctl命令输出

游客 回复需填写必要信息