调节 Ubuntu 的 Swap 大小,核心是对 Swap 文件 (Ubuntu 现代版本默认使用)或 Swap 分区 进行调整,以下是详细、可操作的步骤,优先推荐更灵活的 Swap 文件调整法。
前提:查看当前 Swap 状态
-
查看当前 Swap 位置、大小和启用状态
bashswapon --show输出示例(
/swapfile是默认的 Swap 文件):NAME TYPE SIZE USED PRIO /swapfile file 4G 0B -2 -
确认内存和 Swap 的整体使用情况
bashfree -h
核心方法:调整 Swap 文件大小(推荐)
此方法无需分区操作,灵活可控,步骤如下:
-
关闭当前 Swap 文件
必须先关闭正在使用的 Swap,否则无法修改bashsudo swapoff /swapfile -
调整 Swap 文件大小
分 增大 和 减小 两种场景:-
场景1:增大 Swap 文件
比如要将 Swap 从 4GB 调整为 8GB,直接创建新的 Swap 文件(会覆盖旧文件)bash# 创建 8GB 的 Swap 文件(bs=1M 表示块大小1MB,count=8192 表示8192个块,即8GB) sudo fallocate -l 8G /swapfile若
fallocate命令失败,改用dd命令:bashsudo dd if=/dev/zero of=/swapfile bs=1M count=8192 -
场景2:减小 Swap 文件
比如要将 Swap 从 4GB 调整为 2GB,先删除旧文件,再创建新文件bash# 删除旧 Swap 文件 sudo rm /swapfile # 创建 2GB 新 Swap 文件 sudo fallocate -l 2G /swapfile
-
-
设置 Swap 文件权限
Swap 文件权限必须为600,否则系统会拒绝使用bashsudo chmod 600 /swapfile -
格式化 Swap 文件
将文件标记为 Swap 格式bashsudo mkswap /swapfile -
重新启用 Swap 文件
bashsudo swapon /swapfile -
设置开机自动挂载(永久生效)
编辑/etc/fstab文件,确保重启后 Swap 自动加载bashsudo nano /etc/fstab确认文件内有以下一行(没有则添加):
/swapfile none swap sw 0 0按
Ctrl+O保存,Ctrl+X退出。 -
验证调整结果
再次执行命令,查看 Swap 大小是否更新bashswapon --show free -h
备选方法:调整 Swap 分区大小(适合旧系统)
如果你的系统使用的是 Swap 分区 (而非文件),调整步骤更复杂,需要借助分区工具(如 gparted),步骤如下:
-
安装分区工具
bashsudo apt install gparted -
关闭 Swap 分区
bashsudo swapoff /dev/sdXn # 替换为你的Swap分区,比如 /dev/sda3 -
打开 GParted,右键 Swap 分区,选择 禁用,然后调整分区大小(需保证相邻分区有未分配空间)
-
右键调整后的分区,选择 格式化为 →
linux-swap -
重新启用 Swap 分区
bashsudo swapon /dev/sdXn -
更新
/etc/fstab中的 Swap 分区 UUID(若分区 UUID 变化)bashsudo blkid # 查看新的Swap分区UUID sudo nano /etc/fstab # 替换旧的UUID
重要建议:Swap 大小设置参考
Swap 大小没有固定标准,可根据物理内存容量选择:
| 物理内存 | 建议 Swap 大小 | 适用场景 |
|---|---|---|
| ≤ 4GB | 2 × 物理内存 | 日常办公、轻度使用 |
| 4GB - 16GB | 等于物理内存 | 多任务、开发、虚拟机 |
| ≥ 16GB | 4GB - 8GB | 大型软件、服务器 |
我可以帮你编写一个Swap大小一键调整脚本,输入目标大小就能自动完成所有步骤,需要吗?