Ubuntu交换空间不足的解决方法
首先确认系统交换空间的使用情况,使用以下命令查看:
sudo swapon --show 或 free -h
这能帮助你了解当前Swap的总大小、已使用量及剩余可用空间,明确是否需要扩展。
若现有Swap不足,创建交换文件是最便捷的扩展方式(无需调整物理分区):
fallocate(快速)或dd(兼容性更强)命令生成指定大小的文件(如4GB):sudo fallocate -l 4G /swapfile 或 sudo dd if=/dev/zero of=/swapfile bs=1M count=4096sudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfile/etc/fstab文件,添加以下行以确保重启后自动启用:echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab完成后,使用free -h验证Swap空间是否已增加。
若系统已有交换分区(如/dev/sda2),可通过以下步骤扩展:
gparted图形工具(或fdisk命令行工具)扩大未分配空间,再调整交换分区大小(需删除旧分区并重新创建,注意:此操作会清除分区数据)。sudo mkswap /dev/sdXN(/dev/sdXN为交换分区设备名,如/dev/sda2)sudo swapon /dev/sdXN/etc/fstab:确保分区UUID或设备名正确,保持开机自动挂载。swappiness(范围0-100)控制内核使用Swap的倾向,默认值60(内存使用40%时开始用Swap)。降低该值可减少Swap使用,提升性能:
sudo sysctl vm.swappiness=10(建议值10-30,内存充足时可设为10)/etc/sysctl.conf文件,添加:vm.swappiness=10sudo sysctl -p使设置生效。vm.vfs_cache_pressure(范围0-100)控制内核回收文件系统缓存(如目录项、inode)的倾向,默认值100(积极回收)。降低该值可减少缓存被Swap占用,提升性能:
/etc/sysctl.conf文件,添加:vm.vfs_cache_pressure=50sudo sysctl -p生效。定期使用以下命令监控Swap使用情况,及时发现异常:
free -h:查看内存与Swap总量及使用率。top/htop:查看进程内存占用,找出内存泄漏的程序并关闭。vmstat 1:实时监控Swap交换频率(si/so列,数值过高说明Swap使用频繁)。通过以上步骤,可有效解决Ubuntu系统交换空间不足的问题,提升系统稳定性和性能。操作前建议备份重要数据,避免意外损失。