如何优化Ubuntu的Swapper性能
导读:优化 Ubuntu 的 Swapper 性能 一 核心思路与快速检查 明确目标:减少磁盘 I/O、降低换页延迟、避免内存紧张导致的卡顿或 OOM。 快速检查当前状态: 查看交换设备与大小:sudo swapon --show 查看内存与...
优化 Ubuntu 的 Swapper 性能
一 核心思路与快速检查
- 明确目标:减少磁盘 I/O、降低换页延迟、避免内存紧张导致的卡顿或 OOM。
- 快速检查当前状态:
- 查看交换设备与大小:
sudo swapon --show - 查看内存与交换使用:
free -h - 查看当前 swappiness:
cat /proc/sys/vm/swappiness
- 查看交换设备与大小:
- 原则:优先减少不必要的换页;在内存不足时有足够的“安全垫”;让更快的交换介质(如 zram)优先使用。
二 关键参数调优
- 调整 swappiness(换页倾向)
- 临时设置:
sudo sysctl vm.swappiness=10 - 永久生效:在
/etc/sysctl.conf中添加vm.swappiness=10,执行sudo sysctl -p - 经验值参考:桌面环境可设 10–40;内存充足且希望尽量使用物理内存的服务器可更低;内存较小或希望更早换出可更高。Ubuntu 18.04 默认值常为 60。调得过低可能在内存紧张时更易触发 OOM,需结合监控逐步微调。
- 临时设置:
- 使用 zram 优先于磁盘交换(强烈推荐)
- 安装与启用:
sudo apt install zram-tools,安装后通常已自动启用。 - 配置建议(编辑
/etc/default/zramswap):- 压缩算法:
ALGO=lz4(速度优先;追求压缩率可选zstd,CPU 更强时更合适) - 占用内存比例:
PERCENT=20%(示例;可按内存大小调整) - 优先级:
PRIORITY=100(确保 zram 优先于磁盘 swap)
- 压缩算法:
- 使配置生效:
sudo systemctl restart zramswap.service - 故障排查:若重启失败提示“设备或资源忙”,可先执行
sudo swapoff -asudo modprobe -r zram 2> /dev/null || truesudo rm -f /dev/zram*sudo modprobe zram num_devices=1- 再重启服务
sudo systemctl restart zramswap.service
- 说明:zram 在内存中压缩交换,速度快、减少磁盘写入,适合作为第一层交换;磁盘 swap 作为后备。
- 安装与启用:
三 交换空间大小与介质选择
- 何时需要增大交换空间
- 出现内存紧张且
free -h显示 Swap 已接近用尽,或系统出现明显卡顿、OOM。 - 需要支持休眠(hibernate)时,交换空间应不小于物理内存大小。
- 出现内存紧张且
- 调整交换大小(以 swapfile 为例)
- 关闭现有交换:
sudo swapoff -a - 创建新的交换文件(示例 16G):
sudo fallocate -l 16G /swapfile(若失败可用sudo dd if=/dev/zero of=/swapfile bs=1G count=16)
- 设置权限与格式化:
sudo chmod 600 /swapfile & & sudo mkswap /swapfile - 启用:
sudo swapon /swapfile - 开机自动挂载:在
/etc/fstab添加/swapfile none swap sw 0 0 - 验证:
sudo swapon --show、free -h
- 关闭现有交换:
- 介质与容量建议
- 优先使用 zram 作为第一层交换;磁盘交换作为后备。
- 传统经验是交换空间约为内存的 1–2 倍,但在内存较大的现代桌面/服务器上不必盲目追求大文件,更应依赖 zram 与合理的 swappiness。
- 休眠需求:交换大小 ≥ 物理内存;无休眠需求则以“能覆盖短时峰值”为宜,避免过度分配导致磁盘占用与性能下降。
四 监控与排错
- 持续观察
- 资源使用:
free -h、top/htop、gnome-system-monitor - 交换设备:
swapon --show
- 资源使用:
- 常见问题处理
- 修改 swappiness 不生效:确认写入到
/etc/sysctl.conf并执行sudo sysctl -p - 调整 swap 大小后未生效:确认
/etc/fstab行正确、执行sudo swapon -a - zram 启动失败:按上文“故障排查”步骤清理后重启服务
- 频繁换页导致卡顿:适度降低
vm.swappiness,确认 zram 已启用且优先级更高,必要时增加 zram 的PERCENT或补充磁盘 swap 作为后备。
- 修改 swappiness 不生效:确认写入到
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何优化Ubuntu的Swapper性能
本文地址: https://pptw.com/jishu/788526.html
