什么是交换空间? #
交换空间(Swap)是硬盘上的一块额外存储区域,当内存(RAM)不足时,系统会把数据临时存到这里。
它比内存慢,但能防止程序因为内存不足而崩溃。
第一步 – 检查系统是否已有交换空间 #
运行:
sudo swapon --show
如果没有输出,说明没有启用交换空间。
你也可以用:
free -h
如果 Swap
一栏显示 0B
,说明没有。
第二步 – 检查磁盘空间 #
确保硬盘有足够空间:
df -h
找到 Mounted on 列中是 /
的那行。
如果可用空间有几 GB,就可以。
提示: 一般交换空间大小建议等于或是内存的两倍。超过 4 GB 通常没必要。
第三步 – 创建交换文件 #
例如创建 1 GB 交换文件(可改成你想要的大小):
sudo fallocate -l 1G /swapfile
检查文件:
ls -lh /swapfile
第四步 – 启用交换文件 #
- 设置权限(安全起见):
sudo chmod 600 /swapfile
- 格式化为交换空间:
sudo mkswap /swapfile
- 启用:
sudo swapon /swapfile
- 检查是否生效:
sudo swapon --show free -h
第五步 – 开机自动启用 #
当前配置在重启后会失效。
要让它开机自动生效:
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
第六步 – 优化交换空间性能 #
调整 Swappiness #
- 控制系统使用交换空间的频率(0–100)。
0
= 只有必要时才用交换空间。100
= 积极使用交换空间。
查看当前值:
cat /proc/sys/vm/swappiness
临时修改(例如设为 10):
sudo sysctl vm.swappiness=10
永久生效:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
调整 Cache Pressure #
- 控制系统清理文件系统缓存的速度。
- 值越低,缓存保留时间越长。
查看当前值:
cat /proc/sys/vm/vfs_cache_pressure
临时修改(例如设为 50):
sudo sysctl vm.vfs_cache_pressure=50
永久生效:
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf
完成! #
你已成功添加交换空间。现在内存不足时,系统会用它作为备用。
记住 —— 交换空间比内存慢,如果经常内存不够,最好的办法还是升级内存。