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 兼容性更好,可作备选 |