Ubuntu 开启 Swap 完整流程指南缩略图

Swap(交换空间)是 Linux 系统中用于扩展物理内存的重要机制,当物理内存不足时,系统会将不活跃的内存页交换到 Swap 空间。以下是 Ubuntu 系统中配置 Swap 的完整流程:

1. 检查当前 Swap 状态

首先确认系统是否已启用 Swap:

sudo swapon --show
  • 无输出:表示当前没有活动的 Swap 空间
  • 有输出:显示已启用的 Swap 分区/文件信息

2. 创建 Swap 文件

2.1 创建 Swap 文件

推荐使用 fallocate 快速创建(如不可用则使用 dd):

# 方法一:使用 fallocate(推荐,速度更快)
sudo fallocate -l 2G /swapfile  # 创建 2GB 的 Swap 文件 
# 方法二:使用 dd(兼容性更好)
sudo dd if=/dev/zero of=/swapfile bs=1G count=2 status=progress

2.2 设置文件权限

确保只有 root 用户能访问:

sudo chmod 600 /swapfile

2.3 格式化为 Swap 区域

sudo mkswap /swapfile

输出示例:

Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)no label, UUID=xxxx-xxxx-xxxx-xxxx

2.4 启用 Swap 文件

sudo swapon /swapfile

3. 验证 Swap 启用状态

sudo swapon --show

输出示例:

NAME      TYPE SIZE USED PRIO
/swapfile file   2G   0B  -2

或使用 free -h 查看:

free -h

输出示例:

total        used        free      shared  buff/cache   availableMem:           3.8G        1.2G        100M        200M        2.5G        2.2GSwap:          2.0G          0B        2.0G

4. 持久化配置(开机自动挂载)

4.1 编辑 fstab 文件

sudo nano /etc/fstab

4.2 添加 Swap 配置项

在文件末尾添加:

/swapfile none swap sw 0 0

或带优先级的配置(可选):

/swapfile none swap sw,pri=10 0 0
  • pri=10:设置 Swap 优先级(数值越大优先级越高)
  • 保存退出:Ctrl+X → Y → Enter

5. 配置 Swappiness 参数(可选)

Swappiness 值控制系统使用 Swap 的倾向:

  • 0-100:值越小越倾向于使用物理内存
  • 默认值:60

5.1 查看当前值

cat /proc/sys/vm/swappiness

5.2 临时修改(重启失效)

sudo sysctl vm.swappiness=10

5.3 永久修改

编辑配置文件:

sudo nano /etc/sysctl.conf

在文件末尾添加:

vm.swappiness=10

保存退出后应用配置:

sudo sysctl -p

6. 注意事项

  1. 文件大小选择
    • 物理内存 ≤ 2GB:建议 Swap = 2 × 物理内存
    • 物理内存 2-8GB:建议 Swap = 物理内存
    • 物理内存 ≥ 8GB:建议 Swap = 4-8GB(或根据需求)
  2. 性能考虑
    • Swap 文件性能低于 Swap 分区
    • SSD 上的 Swap 比 HDD 更快
    • 考虑使用 zswap 或 zram 提升性能
  3. 安全删除 Swap(如需):
    sudo swapoff /swapfile
    sudo rm /swapfile
    sudo nano /etc/fstab # 删除对应行
  4. 监控 Swap 使用
    vmstat 1 5 # 每秒刷新,共5次
    top # 按 M 键按内存排序
    htop # 更直观的监控工具(需安装)

通过以上步骤,可以成功在 Ubuntu 系统中配置并启用 Swap 空间,并根据需要调整系统参数以获得最佳性能。

作者 LiveTops

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code