
一、什么是 Swap
Swap(交换分区) 是 Linux 系统中当内存不足时,用于临时扩展内存容量的虚拟内存区域。
当物理内存不够用时,系统会将部分暂时不用的数据写入 Swap 空间中,从而避免程序因内存不足而崩溃。
Swap 可以是:
独立的分区(推荐服务器安装时设置)
也可以是一个文件形式(灵活可调)
二、创建 Swap 文件
以下示例创建一个 2GB 的 Swap 文件 /var/newswap。
# 创建一个 2GB 大小的空文件
dd if=/dev/zero of=/var/newswap bs=1M count=2048
# 修改权限,防止被普通用户访问
chmod 600 /var/newswap
# 格式化为 Swap 类型
mkswap /var/newswap
三、启用 Swap
# 启用 swap 文件
swapon /var/newswap
四、验证 Swap 是否生效
free -m
输出示例:
total used free shared buff/cache available
Mem: 1723 634 358 1 730 936
Swap: 2047 5 2042
可以看到 Swap 一栏有数值,即代表配置成功。
五、设置开机自动挂载(永久生效)
编辑 /etc/fstab 文件:
vim /etc/fstab
在文件最后添加以下内容:
/var/newswap swap swap defaults 0 0
保存后,执行以下命令测试是否有错误:
mount -a
如果没有任何输出或错误,说明配置正确。
此后系统重启后会自动加载 Swap。
六、卸载与删除 Swap(可选)
如果需要临时关闭或删除该 Swap:
# 临时关闭 Swap
swapoff /var/newswap
# 删除文件(若不再需要)
rm -f /var/newswap
七、查看当前 Swap 信息
swapon -s
输出示例:
Filename Type Size Used Priority
/var/newswap file 2097148 0 -2
八、调整 Swap 使用优先级(Swappiness)
Swappiness 决定系统在使用 Swap 前倾向于占用多少物理内存。
取值范围 0~100:
数值越小,越少使用 Swap(推荐服务器设为 10~20)
默认值通常是 60
查看当前值:
cat /proc/sys/vm/swappiness
临时修改为 10:
sysctl vm.swappiness=10
永久修改(写入配置文件):
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
九、总结命令速查表
📘 扩展建议:
对于内存小于 2GB 的 VPS,建议 Swap 设置为物理内存的 1~2 倍。
对于 SSD 硬盘设备,可以启用
swapfile但建议加上vm.vfs_cache_pressure=50以降低频繁读写。
评论区