Ubuntu Swap优化方法
Swap文件是Ubuntu中最常用的交换空间形式,可根据物理内存大小调整其容量。
fallocate命令快速创建指定大小的Swap文件(如4GB),若fallocate不可用,可用dd命令替代。sudo fallocate -l 4G /swapfile # 创建4GB Swap文件
sudo chmod 600 /swapfile # 设置严格权限(仅root可访问)
sudo mkswap /swapfile # 格式化为Swap格式
sudo swapon /swapfile # 启用Swap文件
/etc/fstab文件,确保系统重启后自动加载。echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo swapoff /swapfile # 禁用Swap文件
sudo fallocate -l 8G /swapfile # 调整为8GB(示例)
sudo mkswap /swapfile # 重新格式化
sudo swapon /swapfile # 重新启用
Swappiness是控制内核使用Swap频率的关键参数(取值0-100),值越低,系统越倾向于使用物理内存,减少Swap依赖。
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=10 # 推荐值:10-30(内存充足时可设为10以下)
/etc/sysctl.conf文件,添加以下行:vm.swappiness=10
执行sudo sysctl -p使修改生效。Swap的性能高度依赖存储介质的读写速度,优先将Swap文件放在SSD上(尤其是NVMe SSD),可显著提升Swap操作速度。若系统已有SSD,确保Swap文件位于SSD分区(如/根目录或/home目录下的Swap文件)。
定期监控Swap使用状态,判断优化效果及是否需要进一步调整:
free -h
sudo swapon --show
sudo top # 或 htop(需安装)
若系统物理内存充足(如16GB以上)且Swap使用率长期低于10%,可考虑删除Swap文件以释放磁盘空间:
sudo swapoff /swapfile
sudo rm /swapfile
/etc/fstab,删除或注释掉Swap文件对应的行。zram(压缩内存)和zswap(压缩Swap)可在内存中创建虚拟Swap空间,减少对磁盘的访问,适合内存紧张但需提升Swap性能的场景:
sudo apt install zram-config
/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT中添加zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20(压缩算法选lz4,池大小设为内存的20%),然后更新GRUB并重启:sudo update-grub
sudo reboot
/etc/fstab等关键文件,防止误操作导致系统无法启动。