Linux 系统添加 Swap 交换空间的完整指南

      发布在:后端技术      评论:0 条评论

作用:当物理内存不足时,Swap 空间作为虚拟内存可防止系统崩溃,提升服务器稳定性。

# 创建交换文件(4GB示例,根据磁盘空间调整)
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 永久生效
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# 验证
free -m

1a73bb2c-888a-4c28-b09d-745d18f5c633

命令逐行解析:

  1. 创建交换文件

sudo fallocate -l 4G /swapfile
  • fallocate:快速分配磁盘空间(比 dd 更高效)

  • -l 4G:创建 4GB 文件(根据需求调整,如 2G/8G

2.设置安全权限

sudo chmod 600 /swapfile
    • 限制为 root 可读写,防止普通用户篡改,提升安全性

3.格式化交换文件

sudo mkswap /swapfile

写入特殊签名,使文件被识别为交换空间

4.立即启用交换空间

sudo swapon /swapfile
    • 激活交换文件,无需重启即可生效

5.永久生效(开机自动挂载)

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

各字段含义:

  1. /swapfile
    交换文件的路径(设备名)

  2. none
    表示没有传统意义上的挂载点(如 /mnt/swap)。因为:

    • Swap 空间是作为虚拟内存使用,不是磁盘文件系统

    • 不需要像普通磁盘分区那样挂载到目录树中

    • 这是 swap 类型条目在 fstab 中的标准写法

  3. swap
    明确指定文件系统类型为交换空间

  4. sw
    挂载选项(mount options):

    • sw = 启用读写(swap read/write)

    • 等效写法:defaults 或 sw 0 0

  5. 0 0

    • 第一个 0dump 工具不备份此"文件系统"

    • 第二个 0:启动时 fsck 不检查此空间

6.验证Swap状态

free -m

Swap 大小建议

    • 内存 < 2GB:Swap = 内存的 2 倍

    • 内存 2~8GB:Swap = 等于内存

    • 内存 > 8GB:Swap ≥ 4GB(如运行数据库/内存密集型应用)

删除 Swap 文件

sudo swapoff /swapfile  # 停用
sudo rm /swapfile       # 删除
sudo nano /etc/fstab    # 移除对应行


热门推荐