IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Linux建一个swap文件来充当交换空间,以建立SWAP分区

    杜工发表于 2021-03-10 12:25:00
    love 0

    查看内存的情况(此时swap行为0)
    free -m

    初始时Swap 相关数据都是0。

    1. 创建swap文件(本文创建了2G),并使之生效
      a.创建用于交换分区的文件:
      dd if=/dev/zero of=/swapfile bs=1M count=2048
      注:block_size、number_of_block 大小可以自定义,比如 bs=1M count=1024 代表设置 1G 大小 SWAP 分区。
      b.设置交换分区文件:
      mkswap /swapfile

    c.立即启用交换分区文件:
    swapon /swapfile
    这个命令可能会提示“swapon: /swapfile: insecure permissions 0644, 0600 suggested.”,意思是建议把swap设置成644或600权限。

    1. 这时运行free -m会发现swap一列已经有数字了,就是上面第一次执行free -m 后的结果。
      注:如果在 /etc/rc.local 中有 swapoff -a 需要修改为 swapon -a
    2. 在 /etc/fstab 中添加如下一行,使之永久生效
      /swapfile swap swap defaults 0 0
    3. 修改 swpapiness 参数
      在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。
      查看修改前为 0,需要在物理内存使用完毕后才会使用 SWAP 分区。
      可以使用下述方法临时修改此参数,假设我们配置为空闲内存少于 10% 时才使用 SWAP 分区:
      echo 10 >/proc/sys/vm/swappiness
      若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:
      vm.swappiness=10

    关闭 SWAP
    当系统出现内存不足时,开启 SWAP 可能会因频繁换页操作,导致 IO 性能下降。如果要关闭 SWAP,可以采用如下方法。
    1、free -m 查询 SWAP 分区设置:

    2、使用命令swapoff 关闭 SWAP,比如:
    swapoff /mnt/swap

    3、修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载:

    4、 通过 free -m 确认 SWAP 已经关闭。

    5、 swappiness 参数调整:
    可以使用下述方法临时修改此参数,这里配置为 0%:
    echo 0 >/proc/sys/vm/swappiness
    若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf文件,并增加以下内容:
    vm.swappiness=0



沪ICP备19023445号-2号
友情链接