Linux 配置Swap空间

鸿辰 Linux 1.37 K

概述

在Linux系统中,Swap空间是一种虚拟内存,当系统的物理内存(RAM)不足时,操作系统会使用硬盘空间来扩展可用内存。配置Swap空间对于确保系统在高负载下稳定运行非常重要。以下是如何在Linux系统中配置Swap空间的步骤。

开启swap空间

  • 第一步:检查现有Swap空间

    在配置新的Swap空间之前,首先检查系统中是否已经存在Swap空间。

      free -h
      swapon --show

    如果已经存在Swap空间,swapon --show 命令会列出所有启用的Swap分区和文件。

  • 第二步:创建Swap文件

    如果需要添加Swap空间,可以通过创建Swap文件来实现。以下是创建Swap文件的步骤:

    1. 使用 dd 命令创建一个Swap文件。例如,创建一个大小为1GB的Swap文件:

      sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
    2. 设置Swap文件的权限,确保只有root用户可以访问:

      sudo chmod 600 /swapfile
    3. 格式化Swap文件:

      sudo mkswap /swapfile
    4. 启用Swap文件:

      sudo swapon /swapfile
  • 第三步:配置Swap持久化

    为了确保在系统重启后Swap文件仍然可用,需要将Swap文件的配置添加到 /etc/fstab 文件中。

    1. 使用文本编辑器打开 /etc/fstab 文件:

      sudo vi /etc/fstab
    2. 在文件末尾添加以下行

      /swapfile swap swap defaults 0 0
    3. 保存并关闭文件。

  • 第四步:验证Swap配置

    使用以下命令验证Swap配置是否生效:

      free -h
      swapon --show

    如果Swap文件已正确配置,它应该会在输出中显示。

  • 第五步:监控Swap使用情况

    可以使用 vmstattop 命令来监控Swap空间的使用情况:

      vmstat -s
      top

修改 swpapiness 参数

在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。

  • 临时修改

      # 配置为空闲内存少于 10% 时才使用 SWAP 分区
      echo 10 >/proc/sys/vm/swappiness
  • 永久修改

    若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,将 vm.swappiness 修改为 vm.swappiness=10,修改完成后执行下面的命令生效

      sysctl -p

调整Swap空间

如果需要调整Swap空间的大小,可以按照以下步骤操作:

  1. 禁用当前的Swap文件:

     sudo swapoff /swapfile
  2. 使用 dd 命令调整Swap文件的大小:

     sudo dd if=/swapfile of=/swapfile.new bs=1M count=2048
  3. 重命名并重新启用Swap文件:

     sudo mv /swapfile.new /swapfile
     sudo swapon /swapfile
  4. 更新 /etc/fstab 文件中的配置。

关闭 Swap空间

  1. 禁用当前的Swap文件:

     sudo swapoff /swapfile
  2. 修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载

  3. 检查是否关闭

     free -h
     swapon --show
  4. 把 swpapiness 参数,设置为 vm.swappiness=0,修改完成后执行 sysctl -p

注意事项

  • 确保Swap文件的大小不会超过磁盘的可用空间。
  • Swap空间不应该作为物理内存的替代品,它比物理内存慢得多。
  • 对于生产环境,建议使用Swap分区而不是Swap文件,因为分区可以提供更好的性能。

标签: linux