Swap交换分区的两种创建方式

Swap交换分区的两种创建方式

当系统的物理内存不够用的时候,系统会将长时间没有操作的进程占用的物理内存空间释放出来,以供当前运行的程序使用。而被释放的空间会被临时保存到交换(Swap)分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。如果Swap被用尽,将会发生系统错误。
本文将介绍两种创建Swap分区的方式,以便在系统使用过程中自行手动添加Swap分区。

查看swap分区状态

使用free -h命令查看swap分区使用状态:

root@node4 ~]#free -h
              total        used        free      shared  buff/cache   available
Mem:           976M        104M         67M        6.6M        803M        690M
Swap:          2.0G          0B        2.0G

使用swapon -s命令查看swap分区文件:

[root@node4 ~]#swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       2097148 0       -1

基于分区创建新的swap分区(方式一)

首先我们需要创建新的空白分区,同时修改文件系统为82(Linux swap),可使用fdisk命令:

[root@node4 ~]#fdisk /dev/sda
…… ……
[root@node4 ~]#partprobe
[root@node4 ~]#lsblk -f /dev/sda6
NAME FSTYPE LABEL UUID                                 MOUNTPOINT
sda6 swap         4edd1678-2169-4718-9950-d5aa479bacb5

然后使用mkswap命令创建swap分区:

[root@node4 ~]#mkswap /dev/sda6
mkswap: /dev/sda6: warning: wiping old swap signature.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=8ad1eba4-52f3-4fba-991d-c1a0bbbcbfec

基于文件创建新的swap分区(方式二)

首先使用dd命令创建一个指定大小的数据文件,文件大小为swap分区的大小:

[root@node4 ~]#dd if=/dev/zero of=~/swap bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB) copied, 14.5478 s, 148 MB/s
[root@node4 ~]#file ~/swap
/root/swap: data

可以看到当前文件’swap’的文件类型为’data’。然后再基于此文件使用mkswap命令创建swap分区:

[root@node4 ~]#mkswap ~/swap
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=edf032e7-a8c3-46f4-9b35-302e00d6c55d
[root@node4 ~]#file ~/swap
/root/swap: Linux/i386 swap file (new style), version 1 (4K pages), size 524287 pages, no label, UUID=edf032e7-a8c3-46f4-9b35-302e00d6c55d

当时用mkswap命令创建swap分区后,文件’swap’的文件类型变为’Linux/i386 swap file’。

激活已创建的swap分区

不论是使用空白分区创建的swap分区,还是使用文件创建的Swap分区,均可使用swapon命令激活已创建的Swap交换分区:

[root@node4 ~]#swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       2097148 0       -1
[root@node4 ~]#swapon /dev/sda6
[root@node4 ~]#swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       2097148 0       -1
/dev/sda6                               partition       1048572 0       -2
[root@node4 ~]#swapon ~/swap
swapon: /root/swap: insecure permissions 0644, 0600 suggested.
[root@node4 ~]#swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       2097148 0       -1
/dev/sda6                               partition       1048572 0       -2
/root/swap                              file    2097148 0       -3

可以清楚的看到刚才创建的swap分区,二者的类型分别为’partition’和’file’。另外,我们在使用swapon命令激活swap分区时,可使用-p选项指定优先级。
现在可使用free -h命令再次查看Swap分区使用状态了:

[root@node4 ~]#free -h
              total        used        free      shared  buff/cache   available
Mem:           976M         87M         70M        6.6M        818M        712M
Swap:          5.0G          0B        5.0G

设定开机自动挂载

已激活的Swap分区我们还需要设定开机自动挂载,否在在系统重启后,未设定开机挂载的Swap分区将无法使用。 现在需要将以下信息追加写入/etc/fstab文件末尾:

/dev/sda6                       swap    swap defaults   0 0
/root/swap                      swap    swap defaults   0 0

这样下次重新启动系统,新建的Swap分区也能够正常使用了。

你可能感兴趣的:(运维)