首先确认Swap分区是否已正确启用。使用以下命令查看当前Swap状态:
sudo swapon --show
若无输出,说明Swap未启用。可通过以下命令临时启用(需替换为实际设备名,如/dev/sda3):
sudo swapon /dev/sdXY
若需永久启用,需编辑/etc/fstab文件,添加类似以下内容(替换为Swap分区的UUID):
UUID=xxxx none swap sw 0 0
(注:UUID可通过sudo blkid命令获取)
Swappiness值(默认60)决定系统使用Swap的频率,数值越高越易使用Swap(可能导致性能下降)。
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=20
/etc/sysctl.conf,添加或修改以下行:vm.swappiness=20
执行sudo sysctl -p使更改生效。若/etc/fstab中的UUID与实际Swap分区不符,会导致启动时Swap无法挂载。
sudo blkid
/etc/fstab:用正确UUID替换原有条目,格式如下:UUID=xxxx none swap sw 0 0
sudo reboot
验证Swap是否挂载:sudo swapon --show。若Swap分区损坏或不存在,需重新创建:
sudo swapoff -a
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
/etc/fstab:/swapfile none swap sw 0 0
(注:若使用分区,需用fdisk或GParted工具重新划分分区并格式化为linux-swap类型)若以上方法无效,可通过系统日志获取详细错误信息:
sudo journalctl -xe
或查看/var/log/syslog文件:
grep -i swap /var/log/syslog
根据日志中的错误提示(如“UUID not found”“Permission denied”)针对性解决。
若系统因内存预留过少导致Swap无法及时启用,可修改/etc/sysctl.conf中的vm.min_free_kbytes(单位:KB),增加系统保留的空闲内存。例如:
vm.min_free_kbytes=250000
执行sudo sysctl -p使更改生效。
/etc/fstab时)。