1. 监控Swap使用情况
定期监控Swap使用状态是优化的前提,常用命令包括:
free -h:快速查看内存与Swap的总量、已用空间及使用率(最常用);vmstat 1 5:动态显示系统虚拟内存统计(如Swap in/out速率),每1秒刷新1次,共5次;sar -r 1:查看内存与Swap的详细使用趋势(需安装sysstat包)。2. 合理配置Swap大小
Swap大小的设置需结合物理内存与系统用途调整:
3. 选择合适的Swap类型(文件 vs 分区)
sudo fallocate -l 4G /swapfile # 使用fallocate创建(推荐,速度快)
sudo chmod 600 /swapfile # 设置严格权限(仅root可读写)
sudo mkswap /swapfile # 格式化为Swap空间
sudo swapon /swapfile # 启用Swap
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab # 开机自动启用
gparted或fdisk工具创建分区(类型代码设为82),再执行mkswap、swapon及fstab配置。4. 优化swappiness参数
swappiness(范围0-100)控制内核将内存数据移至Swap的倾向:
sudo sysctl vm.swappiness=10 # 临时生效(重启失效)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf # 永久生效
调整后需通过cat /proc/sys/vm/swappiness验证是否生效。
5. 调整Swap优先级(多Swap场景)
当系统有多个Swap分区或文件时,可通过优先级(-p参数)控制数据写入顺序:
/dev/sda1的优先级设为1(最高),/swapfile设为2(次之):sudo swapoff -a # 关闭所有Swap
sudo swapon -p 1 /dev/sda1 # 启用分区并设置优先级
sudo swapon -p 2 /swapfile # 启用文件并设置优先级
优先级高的Swap会先被使用,有助于提升性能(如将SSD设为高优先级,加快Swap访问速度)。
6. 考虑硬件特性优化
sudo systemctl enable fstrim.timer);7. 定期维护与优化
fstab中的配置)。sudo apt install zram-tools # Ubuntu 22.04+自带
sudo systemctl enable --now zramswap.service
vm.zswap.enabled=1)并重启生效。