Linux 系统 Swap 文件创建与配置指南

2024/7/15·10 views

在 Linux 系统中,创建 Swap 文件(swapfile)是扩展虚拟内存的常用方法。本文介绍两种创建方式,并附完整配置步骤。


一、准备工作:检查当前 Swap 状态

在开始之前,建议先查看系统是否已有 Swap 配置:

bash 复制代码
sudo swapon --show   # 查看已启用的 Swap
free -h              # 查看内存和 Swap 使用情况

如果 swapon --show 无输出,且 free -h 显示 Swap 总量为 0,说明尚未配置。


二、创建 Swap 文件(两种方式)

方式一:使用 fallocate(推荐,速度快)

fallocate 直接分配磁盘空间,无需逐块写入零值,适合主流本地文件系统(如 ext4、xfs)。

bash 复制代码
# 创建 4GB 的 Swap 文件
sudo fallocate -l 4G /swapfile
  • -l 4G:指定文件大小,支持 K、M、G 等单位

注意:部分文件系统(如某些网络文件系统)不支持 fallocate,若执行失败,请改用方式二。

方式二:使用 dd(兼容性更好)

bash 复制代码
# 创建 4GB 的 Swap 文件
sudo dd if=/dev/zero of=/swapfile bs=1G count=4
参数 说明
if=/dev/zero 输入源(提供空数据)
of=/swapfile 输出文件路径
bs=1G 每次写入 1GB 数据块
count=4 写入 4 个数据块(总大小 4GB)

三、统一配置步骤(两种方式通用)

无论使用哪种方式创建,后续步骤完全相同。

1. 设置正确的文件权限

限制 Swap 文件访问权限,仅允许 root 操作:

bash 复制代码
sudo chmod 600 /swapfile

2. 格式化为 Swap 空间

使用 mkswap 初始化 Swap 文件:

bash 复制代码
sudo mkswap /swapfile

3. 立即启用 Swap 文件

bash 复制代码
sudo swapon /swapfile

4. 设置开机自动挂载

编辑 /etc/fstab 文件,添加以下内容以确保系统重启后自动启用:

bash 复制代码
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

四、验证是否生效

执行以下命令确认 Swap 已正常启用:

bash 复制代码
sudo swapon --show   # 查看已启用的 Swap 列表
free -h              # 查看内存和 Swap 使用情况

五、调整 Swap 文件大小

如需调整大小,先禁用现有 Swap 文件,再重新创建:

bash 复制代码
sudo swapoff /swapfile
# 删除旧文件(可选)
sudo rm /swapfile
# 然后按第二步重新创建指定大小的新文件,并重复后续配置步骤

六、优化建议:调整 Swappiness 参数

swappiness 控制系统使用 Swap 的积极程度(范围 0~100,默认 60)。值越小,系统越优先使用物理内存。

临时调整(立即生效):

bash 复制代码
sudo sysctl vm.swappiness=10

永久调整(重启后仍生效):

bash 复制代码
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p   # 立即应用配置

七、注意事项

要点 说明
性能 Swap 文件性能略低于独立 Swap 分区,适合临时扩展场景
大小建议 建议 Swap 大小不超过物理内存的 2 倍,根据实际需求调整
工具选择 fallocate 效率更高,但不支持部分文件系统;dd 兼容性更好,可作备选