一、Swap的作用与形式
Swap(交换空间)是Ubuntu系统用于扩展内存的磁盘空间,主要功能包括:内存不足时将不活跃内存页换出至磁盘(避免OOM崩溃)、支持系统休眠(将内存内容保存至Swap以便恢复)。现代Ubuntu(16.04及以上)默认使用Swap文件(如/swapfile),其优势是灵活调整大小(无需重新分区),适合大多数用户;传统Swap分区需安装时划分,调整麻烦但性能略高(连续磁盘空间)。
二、Swap大小的合理配置原则
Swap大小的设置需结合物理内存容量、使用场景及是否需要休眠综合判断:
三、Swap配置的关键步骤
# 创建4GB Swap文件(使用fallocate命令,速度快)
sudo fallocate -l 4G /swapfile
# 设置严格权限(仅root可读写)
sudo chmod 600 /swapfile
# 格式化为Swap格式
sudo mkswap /swapfile
# 启用Swap文件
sudo swapon /swapfile
编辑/etc/fstab文件(使用sudo nano /etc/fstab),在末尾添加以下行:
/swapfile none swap sw 0 0
保存后,系统重启时会自动启用该Swap文件。
四、优化Swap使用:调整swappiness参数
swappiness是控制内核使用Swap积极性的参数,取值范围0~100:
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=10
/etc/sysctl.conf,添加或修改以下行:vm.swappiness=10
执行sudo sysctl -p使设置生效。五、性能优化技巧
sudo nano /etc/default/grub),在GRUB_CMDLINE_LINUX中添加:zswap.enabled=1 zswap.compressor=lz4
更新GRUB并重启:sudo update-grub
sudo reboot
Zswap会在内存不足时先压缩内存页(使用LZ4算法),仅将无法压缩的部分写入Swap,降低I/O压力。六、注意事项
sudo swapoff -a并注释/etc/fstab中的行)可能导致OOM Killer强制终止进程(如浏览器、数据库),需谨慎操作。free -h(查看Swap总量及使用量)、swapon --show(查看活跃Swap设备)、vmstat 1(监控si/so列,即Swap In/Out频率)等命令,及时发现Swap异常。