A-A+

Ubuntu 22.04 系统中设置 swap 分区

2025年05月20日 20:55 汪洋大海 暂无评论 共2934字 (阅读624 views次)

在 Ubuntu 系统中设置 swap 分区可以通过以下步骤完成:

1. 检查当前系统中的 swap 使用情况

首先,可以使用 free 命令来查看当前系统的内存和 swap 使用情况:

free -h

这将显示系统的内存和 swap 总量,以及当前使用量和可用量。

2. 确定是否已有 swap 分区或文件

再次确认系统是否已经有 swap 分区或 swap 文件。可以使用以下命令列出当前的 swap 设置:

sudo swapon --show

如果没有显示任何内容,则表示当前系统没有启用任何 swap。

 

如果要是已有swap或者swap文件如下图:

images

可以通过命令关闭指定的 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 值

  1. 查看当前 Swappiness 值: 首先,您可以使用以下命令查看当前系统的 Swappiness 值:
    cat /proc/sys/vm/swappiness
  2. 临时修改 Swappiness 值: 您可以使用 sysctl 命令临时修改 Swappiness 值。例如,将 Swappiness 设置为 30:
    sudo sysctl vm.swappiness=30

    这个设置会立即生效,但重启系统后会恢复为默认值,除非您将其永久化。

永久设置 Swappiness 值

  1. 使用编辑器修改 /etc/sysctl.conf 文件: 打开 /etc/sysctl.conf 文件,可以使用任何文本编辑器(如 nano 或 vi):
    sudo nano /etc/sysctl.conf
  2. 在文件末尾添加以下行: 在打开的文件末尾添加以下行,如果之前有相同的条目,可以更新其值:
    vm.swappiness=30
  3. 保存并应用更改: 保存并关闭文件后,使用以下命令使更改生效:
    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 文件

  1. 关闭 swap 文件: 首先,需要停用 swap 文件。
    bashCopy Codesudo swapoff /swapfile
  2. 删除 swap 文件: 停用后,可以安全地删除该文件。
    bashCopy Codesudo rm /swapfile
  3. 从 /etc/fstab 中移除 swap 文件的条目: 如果您在 /etc/fstab 文件中添加了 swap 文件的条目(用于自动挂载),请将其删除或注释掉(在行前添加 #)。
    bashCopy Codesudo nano /etc/fstab

    找到类似于以下内容的行并删除或注释掉:

    plaintextCopy Code/swapfile none swap sw 0 0

删除 swap 分区

  1. 关闭 swap 分区: 停用 swap 分区。
    sudo swapoff /dev/sdX

    其中 /dev/sdX 是您的 swap 分区设备名,如 /dev/sda3

  2. 从 /etc/fstab 中移除 swap 分区的条目: 编辑 /etc/fstab 文件并删除或注释掉与 swap 分区相关的行。
    sudo nano /etc/fstab

    找到类似于以下内容的行并删除或注释掉:

    /dev/sdX none swap sw 0 0
  3. 删除分区或重新分配: 可以使用分区管理工具(如 fdiskparted 或 gparted)来删除该分区或将其重新分配用于其他用途。使用 fdisk 例子:
    sudo fdisk /dev/sda

    然后在 fdisk 提示下:

    • 输入 p 列出分区表
    • 输入 d 删除分区,然后输入要删除的分区号
    • 输入 w 保存更改并退出

确认删除

最后,您可以使用 free -h 和 sudo swapon --show 命令来确认 swap 文件或分区是否已成功移除。

通过上述步骤,可以安全地删除不再需要的 swap 文件或分区,从而释放磁盘空间或重新分配分区资源。

 

 

images

 

文章来源:https://www.cnblogs.com/wangmin-code/p/18268358

布施恩德可便相知重

微信扫一扫打赏

支付宝扫一扫打赏

×

给我留言