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. 注意事项
- 文件大小选择:
- 物理内存 ≤ 2GB:建议 Swap = 2 × 物理内存
- 物理内存 2-8GB:建议 Swap = 物理内存
- 物理内存 ≥ 8GB:建议 Swap = 4-8GB(或根据需求)
- 性能考虑:
- Swap 文件性能低于 Swap 分区
- SSD 上的 Swap 比 HDD 更快
- 考虑使用
zswap或zram提升性能
- 安全删除 Swap(如需):
sudo swapoff /swapfilesudo rm /swapfilesudo nano /etc/fstab # 删除对应行 - 监控 Swap 使用:
vmstat 1 5 # 每秒刷新,共5次top # 按 M 键按内存排序htop # 更直观的监控工具(需安装)
通过以上步骤,可以成功在 Ubuntu 系统中配置并启用 Swap 空间,并根据需要调整系统参数以获得最佳性能。