Ubuntu 22.04 系统中设置 swap 分区
在 Ubuntu 系统中设置 swap 分区可以通过以下步骤完成:
1. 检查当前系统中的 swap 使用情况
首先,可以使用 free
命令来查看当前系统的内存和 swap 使用情况:
free -h
这将显示系统的内存和 swap 总量,以及当前使用量和可用量。
2. 确定是否已有 swap 分区或文件
再次确认系统是否已经有 swap 分区或 swap 文件。可以使用以下命令列出当前的 swap 设置:
sudo swapon --show
如果没有显示任何内容,则表示当前系统没有启用任何 swap。
如果要是已有swap或者swap文件如下图:
可以通过命令关闭指定的 swap 文件(只关闭指定的 swap文件(这里只影响 /swap 这一个 swap 空间),不会影响其它 swap 区。):
sudo swapoff /swap
或者通过命令关闭系统中所有挂载的 swap 区,不管是 swap 文件还是 swap 分区:
sudo swapoff -a
这样所有 swap(包括 /swapfile、/dev/sdXN 等分区,系统所有可见的 swap 区)都将被关闭。
然后删除当前的 swap 文件:
sudo rm /swap
3. 创建一个 swap 分区(如果需要)
如果系统没有足够的 swap 空间或者没有 swap 分区,可以考虑创建一个 swap 分区。
创建 swap 文件
如果没有额外的分区可供创建 swap,可以创建一个 swap 文件:
sudo fallocate -l 1G /swapfile # 创建一个大小为 1GB 的 swap 文件,可以根据需要调整大小
sudo chmod 600 /swapfile # 设置文件权限为只有 root 用户可读写
sudo mkswap /swapfile # 格式化为 swap 文件
sudo swapon /swapfile # 启用 swap 文件
创建 swap 分区
如果有额外的未分配空间,可以创建一个新的 swap 分区。这需要使用工具如 fdisk
或 gparted
来创建分区,并将其标记为 swap 类型。然后,使用 mkswap
命令格式化为 swap 分区,再使用 swapon
命令启用它。
4. 永久性设置 swap
一旦创建了新的 swap 分区或文件,需要将其永久性添加到系统中,以便系统在下次启动时自动启用。
对于 swap 文件
编辑 /etc/fstab
文件,添加以下行来自动启用 swap 文件:
/swapfile none swap sw 0 0
对于 swap 分区
如果创建了新的 swap 分区,则不需要手动编辑 /etc/fstab
,因为安装过程通常会自动将其添加到配置文件中。
5. 确认 swap 是否生效
最后,可以再次运行 free -h
命令来确认新的 swap 分区或文件已经被系统使用。
通过以上步骤,你可以在 Ubuntu 系统中成功设置并启用新的 swap 分区或文件。
6.Swappiness 设置
Swappiness 设置: Swappiness 是一个影响系统在何时使用 swap 的内核参数。它的值范围从 0 到 100,表示系统在内存压力下倾向于使用 swap 的程度。如果 swappiness 值设置得过低(接近 0),系统会更倾向于使用物理内存而非 swap。您可以通过修改 /proc/sys/vm/swappiness
文件或者通过编辑 /etc/sysctl.conf
文件来调整 swappiness 设置。
以下是如何设置 Swappiness 值的步骤:
临时设置 Swappiness 值
- 查看当前 Swappiness 值: 首先,您可以使用以下命令查看当前系统的 Swappiness 值:
cat /proc/sys/vm/swappiness
- 临时修改 Swappiness 值: 您可以使用
sysctl
命令临时修改 Swappiness 值。例如,将 Swappiness 设置为 30:sudo sysctl vm.swappiness=30
这个设置会立即生效,但重启系统后会恢复为默认值,除非您将其永久化。
永久设置 Swappiness 值
- 使用编辑器修改
/etc/sysctl.conf
文件: 打开/etc/sysctl.conf
文件,可以使用任何文本编辑器(如nano
或vi
):sudo nano /etc/sysctl.conf
- 在文件末尾添加以下行: 在打开的文件末尾添加以下行,如果之前有相同的条目,可以更新其值:
vm.swappiness=30
- 保存并应用更改: 保存并关闭文件后,使用以下命令使更改生效:
sudo sysctl -p
验证设置是否生效
您可以再次运行 cat /proc/sys/vm/swappiness
命令来验证新的 Swappiness 值是否已成功应用。
选择合适的 Swappiness 值
- 低于 60: 如果您更倾向于系统使用物理内存而非 swap,请将 Swappiness 设置为较低的值,如 10 到 30。这样可以减少系统使用 swap 的频率。
- 高于 60: 如果您希望系统在出现轻微内存压力时就开始使用 swap,可以将 Swappiness 设置为高一些的值,如 60 到 100。
注意事项
- 调整 Swappiness 值需要根据具体情况和需求进行选择。不同的应用场景可能需要不同的设置。
- 需要权衡系统性能和内存使用情况,确保设置的 Swappiness 值能够符合系统的运行需求。
7.后续如果不需要swap交换分区可以删除 swap 文件
删除 swap 文件
- 关闭 swap 文件: 首先,需要停用 swap 文件。
bashCopy Codesudo swapoff /swapfile
- 删除 swap 文件: 停用后,可以安全地删除该文件。
bashCopy Codesudo rm /swapfile
- 从
/etc/fstab
中移除 swap 文件的条目: 如果您在/etc/fstab
文件中添加了 swap 文件的条目(用于自动挂载),请将其删除或注释掉(在行前添加#
)。bashCopy Codesudo nano /etc/fstab
找到类似于以下内容的行并删除或注释掉:
plaintextCopy Code/swapfile none swap sw 0 0
删除 swap 分区
- 关闭 swap 分区: 停用 swap 分区。
sudo swapoff /dev/sdX
其中
/dev/sdX
是您的 swap 分区设备名,如/dev/sda3
。 - 从
/etc/fstab
中移除 swap 分区的条目: 编辑/etc/fstab
文件并删除或注释掉与 swap 分区相关的行。sudo nano /etc/fstab
找到类似于以下内容的行并删除或注释掉:
/dev/sdX none swap sw 0 0
- 删除分区或重新分配: 可以使用分区管理工具(如
fdisk
、parted
或gparted
)来删除该分区或将其重新分配用于其他用途。使用fdisk
例子:sudo fdisk /dev/sda
然后在
fdisk
提示下:- 输入
p
列出分区表 - 输入
d
删除分区,然后输入要删除的分区号 - 输入
w
保存更改并退出
- 输入
确认删除
最后,您可以使用 free -h
和 sudo swapon --show
命令来确认 swap 文件或分区是否已成功移除。
通过上述步骤,可以安全地删除不再需要的 swap 文件或分区,从而释放磁盘空间或重新分配分区资源。
文章来源:https://www.cnblogs.com/wangmin-code/p/18268358
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏