交换分区swap的创建与管理

简介: 交换分区swap的创建与管理

前言

swap分区是linux系统中一块特殊的硬盘空间,当实际内存不够用的时候,系统会按照一定的算法将部分不用的数据放在swap分区中,从而为当前运行的程序腾出足够的内存空间。好处在于避免内存资源不足导致的OOM(out of memory),缺点是会极大程度影响到运行在swap分区的程序的性能。

创建swap分区

一般在系统安装的时候就会创建交换分区,如果没有,可以按照以下步骤进行创建。

方式一

  1. 假设有块硬盘/dev/sdb
  2. 先使用fdisk对/dev/sdb进行分区,分区后的/dev/sdb1作为swap分区
  3. mkswap /dev/sdb1
  4. 加载新的swap:swapon /dev/sdb1
  5. 永久生效:编辑/etc/fstab,增加一行:
/dev/sdb1 swap swap defaults 0 0

方式二:使用文件制作swap分区

  1. 先创建一个4G的文件
dd if=/dev/zero bs=4M count=1024 of=/swapfile
  1. 修改文件权限:chmod 600 /swapfile
  2. 加载:mkswap /swapfile
  3. 启用:swapon /swapfile
  4. 永久生效:编辑/etc/fstab,增加一行:
/swapfile swap swap defaults 0 0

扩容swap分区

扩容步骤同创建swap分区

关闭swap

如果内存资源足够的话,建议关闭swap分区,避免影响程序性能

  • 临时关闭:swapoff -a
  • 永久关闭:编辑 /etc/fstab文件,注释swap相关行

swap分区使用倾向性

对于swap分区的使用需要根据实际情况来判断,有的应用即便性能低下,但也尽量别OOM,这样的话swap分区就很有必要;有的应用性能低下的话等于没法用,还不如oom,这种情况下就可以直接关了swap。

如果内存资源够用,但不是特别充足,不想让程序运行在swap分区,但又不想让程序oom,这时候就可以通过设置vm.swappiness参数,降低系统对swap分区的使用倾向性。默认情况下(centos 7),vm.swappiness参数的值为60。值越低,使用swap的倾向性就越低。

个人一般设置为vm.swappiness=0,将swap分区使用倾向性调为最低。注意,vm.swappiness=0表示尽可能不用swap分区,并不意味着一定不会用到swap分区。

  1. 编辑/etc/sysctl.conf文件,增加一行
vm.swappiness=0
  1. 生效:sysctl -p
相关文章
|
Linux
7.5 内存交换空间(swap)之创建
7.5 内存交换空间(swap)之创建
192 0
关闭交换(swap)分区
关闭交换(swap)分区
615 0