Swap分区又称为交换分区,通常是在硬盘中预留一块分区作为swap交换分区,当系统内存出现不足时,系统会将空闲内存的数据复制到swap分区,以释放被这些空闲内存所占用的物理内存;当系统需要用到之前复制到swap分区的空闲内存数据的时候,可以再次从swap分区读取到内存中,以此缓解由于系统内存空间不足,而导致的问题。
查看swap使用情况
在linux系统中,通常使用free -h来查看内存和swap分区的使用情况
[root@master1 ~]# free -h
total used free shared buff/cache available
Mem: 3.7G 697M 1.7G 12M 1.3G 2.7G
Swap: 0B 0B 0B
其中上述各字段的意义如下:
total:表示内存总的大小;
used:表已经使用的内存的大小,大小等于total-free-buffers-cache;
free:表示空闲内存的大小;
shared:表示共享内存的大小
buff/cache:表示buff和cache一共占用的内存大小;
available:系统预计还能腾出给新的应用使用的内存大小;
Mem:物理内存;
Swap:交换分区;
swap分区的关闭
关闭后使用free -h查看swap使用情况
swap创建
swap分区的创建与其他文件系统不一样,其使用单独的创建命令mkswap [options] [device]。
在使用fdisk -l划分了swap分区(类别为82)后,需要使用mkswap命令对该分区进行格式化创建,否则该分区依旧是无法启动为swap
[root@node-1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 35.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm
sdb 8:16 0 20G 0 disk
sr0 11:0 1 4.3G 0 rom /dvd
[root@node-1 ~]# mkswap /dev/sdb
正在设置交换空间版本 1,大小 = 20971516 KiB
无标签,UUID=b2cb9a28-fa2f-47c5-b323-a2a55781ef23
mkswap使用-L选项可以在格式化swap分区时指定分区磁盘文件的卷标
[root@node-1 ~]# mkswap -L swap /dev/sdb
mkswap: /dev/sdb: warning: wiping old swap signature.
正在设置交换空间版本 1,大小 = 20971516 KiB
LABEL=swap, UUID=e080928c-e2d9-449b-a9a4-54566dc2e60e
-U选项可以指定对应分区磁盘文件的UUID
swap启动并查看
[root@node-1 ~]# swapon /dev/sdb
[root@node-1 ~]#
[root@node-1 ~]# free -h
total used free shared buff/cache available
Mem: 3.7G 359M 2.7G 12M 660M 3.0G
Swap: 19G 0B 19G
可以看到swap的分区的total增加19G,说明启动成功
使用分区标识来启动分区
[root@node-1 ~]# blkid /dev/sdb
/dev/sdb: LABEL="swap" UUID="e080928c-e2d9-449b-a9a4-54566dc2e60e" TYPE="swap"
[root@node-1 ~]# swapon -L swap
[root@node-1 ~]# free -h
total used free shared buff/cache available
Mem: 3.7G 360M 2.7G 12M 660M 3.0G
Swap: 19G 0B 19G
同样关闭也可使用标识
[root@node-1 ~]# swapoff -L swap
[root@node-1 ~]#
[root@node-1 ~]# free -h
total used free shared buff/cache available
Mem: 3.7G 344M 2.7G 12M 660M 3.1G
Swap: 0B 0B 0B