Ubuntu Swapper调优方法
导读:Ubuntu Swapper 调优方法 一 基线评估与监控 查看是否已启用交换与容量:sudo swapon --show;查看整体内存与交换:free -h。 观察交换活跃度与瓶颈:vmstat 1(关注 si/so 列,持续不为 0...
Ubuntu Swapper 调优方法
一 基线评估与监控
- 查看是否已启用交换与容量:sudo swapon --show;查看整体内存与交换:free -h。
- 观察交换活跃度与瓶颈:vmstat 1(关注 si/so 列,持续不为 0 表示频繁换入换出)。
- 基线记录:在调整前后分别记录上述指标,便于评估调优收益与回退。
- 注意:在部分系统上,内核通常在可用内存仅剩约6 MB左右才积极启用 Swap,单靠增大 Swap 并不能解决内存紧张导致的卡顿,应结合应用内存优化与内核参数共同治理。
二 交换空间大小与位置
- 快速创建或扩容交换文件(示例为 4GB):
- 创建:sudo fallocate -l 4G /swapfile(如提示不支持,可改用 dd if=/dev/zero of=/swapfile bs=1M count=4096)
- 权限:sudo chmod 600 /swapfile
- 格式化:sudo mkswap /swapfile
- 启用:sudo swapon /swapfile
- 开机自动挂载:在 /etc/fstab 追加一行 /swapfile none swap sw 0 0
- 建议容量(按物理内存规模):
- ≤2GB:Swap ≈ 内存的2倍
- 2–8GB:Swap ≈ 内存的1倍
- > 8GB:Swap 保持 4–8GB 即可(桌面可适当增大以留作休眠空间)
- 位置与介质:优先使用 SSD/NVMe 以降低交换延迟;若对 SSD 写入寿命敏感,可权衡容量与写入频率,或采用下文的内存压缩方案。
三 内核参数与内存压缩
- 调整交换倾向(vm.swappiness):
- 查看:cat /proc/sys/vm/swappiness(默认多为 60)
- 临时降低:sudo sysctl vm.swappiness=10(范围 0–100,数值越低越倾向使用物理内存)
- 永久生效:在 /etc/sysctl.conf 添加 vm.swappiness=10 并执行 sudo sysctl -p
- 启用 Zswap(内核内置的内存压缩缓存,减少磁盘写入):
- 编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX_DEFAULT 末尾添加:
- zswap.enabled=1 zswap.compressor=lz4
- 更新并重启:sudo update-grub & & sudo reboot
- 编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX_DEFAULT 末尾添加:
- 可选:启用 Zram(在内存中创建压缩块设备作为交换,通常作为补充手段,需安装相应工具并启用服务)。
四 维护与故障排查
- 调整或重建交换文件(需先停用):
- 停用:sudo swapoff /swapfile
- 调整大小(示例扩至 8GB):sudo fallocate -l 8G /swapfile
- 格式化并启用:sudo mkswap /swapfile & & sudo swapon /swapfile
- 同步 /etc/fstab 中的路径或大小后重启验证。
- 删除多余交换:停用后 sudo rm /swapfile,并从 /etc/fstab 移除对应条目。
- 减少碎片与长期维护:长时间运行的系统可周期性重建更大的交换文件以降低碎片影响。
- 常见问题速解:
- “Swap 未被使用”多因 swappiness 偏高或可用内存尚充足;可结合降低 swappiness 与监控 vmstat 判断。
- 休眠(Hibernate)需要交换空间≥物理内存,建议为休眠单独保留足够容量的专用交换分区或文件。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Swapper调优方法
本文地址: https://pptw.com/jishu/748149.html
