当系统的物理内存不够用的时候,系统会将长时间没有操作的进程占用的物理内存空间释放出来,以供当前运行的程序使用。而被释放的空间会被临时保存到交换(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
首先我们需要创建新的空白分区,同时修改文件系统为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
首先使用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分区,均可使用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分区也能够正常使用了。