Swap分区又称为交换分区,通常是在硬盘中预留一块分区作为swap交换分区,当系统内存出现不足时,系统会将空闲内存的数据复制到swap分区,以释放被这些空闲内存所占用的物理内存;当系统需要用到之前复制到swap分区的空闲内存数据的时候,可以再次从swap分区读取到内存中,以此缓解由于系统内存空间不足,而导致的问题。
查看swap分区的使用情况
在linux系统中,通常使用free -m
来查看内存和swap分区的使用情况。
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 985 318 269 7 397 491
Swap: 2047 0 2047
其中上述各字段的意义如下:
- total:表示内存总的大小;
- used:表已经使用的内存的大小,大小等于total-free-buffers-cache;
- free:表示空闲内存的大小;
- shared:表示共享内存的大小
- buff/cache:表示buff和cache一共占用的内存大小;
- available:系统预计还能腾出给新的应用使用的内存大小;
- Mem:物理内存;
- Swap:交换分区;
创建swap分区
swap分区的创建与其他文件系统不一样,其使用单独的创建命令mkswap [options] [device]
。
在使用fdisk -l
划分了swap分区(类别为82)后,需要使用mkswap命令对该分区进行格式化创建,否则该分区依旧是无法启动为swap。
[root@localhost ~]# fdisk -l /dev/sdb
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0155e28d
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 10487808 12584959 1048576 82 Linux swap / Solaris
[root@localhost ~]# mkswap /dev/sdb2
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=2e793994-0d48-4365-ab5f-af94a97cc33b
mkswap使用-L选项可以在格式化swap分区时指定分区磁盘文件的卷标。
[root@localhost ~]# mkswap -L swap /dev/sdb2
mkswap: /dev/sdb2: warning: wiping old swap signature.
正在设置交换空间版本 1,大小 = 1048572 KiB
LABEL=swap, UUID=fdb0186c-bcf1-4058-9b94-b58379b17616
同理-U选项可以指定对应分区磁盘文件的UUID。
swap分区的启动与关闭
swapon
与swapoff
分别用于swap分区的启动与关闭,其二者的用法类似。
在启动swap分区后,使用free -m可以查看swap分区的使用情况,下面演示启动一个大小为1G的swap分区:
[root@localhost ~]# swapon /dev/sdb2
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 985 320 265 7 398 489
Swap: 3071 0 3071
可以看到swap分区total增加了约1G,说明分区已正常启动。
此外,还可以利用分区的卷标来识别启动对应的swap分区,如:
[root@localhost ~]# blkid /dev/sdb2
/dev/sdb2: LABEL="swap" UUID="03557b77-7857-4236-9a77-388619359ba2" TYPE="swap"
[root@localhost ~]# blkid /dev/sdb2
/dev/sdb2: LABEL="swap" UUID="03557b77-7857-4236-9a77-388619359ba2" TYPE="swap"
[root@localhost ~]# swapon -L swap
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 985 308 421 7 254 503
Swap: 3071 0 3071
类似地,swapoff也可以使用卷标关闭对应的分区:
root@localhost ~]# swapoff -L swap
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 985 309 421 7 254 503
Swap: 2047 0 2047
网友评论