交换分区的概念在前面曾提到过,交换分区类似于Windows系统中的虚拟内存,能够在一定程度上缓解物理内存不足的问题。当物理内存接近不足时,系统会将内存中不经常调用、CPU不经常处理的数据转移到交换分区中,以腾出更多的内存空间让常用的程序使用。在Windows系统中是采用一个名为pagefile.sys的系统文件作为虚拟内存使用,而在Linux系统中则是划分了一个专门的分区作为交换分区。交换分区在设计上相比虚拟内存要更为高效,因为Linux系统会优先使用物理内存,只有万不得已时才会动用交换分区。
无论主机的物理内存容量有多大,在对硬盘分区时交换分区一般都是要创建的。交换分区的大小通常设置为主机物理内存的2倍,采用专门的swap文件系统。
在32位的Linux系统中,每一个交换分区空间最大不能超过2GB,而且同时启用的交换分区数量最多只能有32个。64位系统没有这个限制。
要创建一个新的交换分区,大致要经过3个步骤,下面分别说明。
1
、配置交换分区空间
配置交换分区空间也就是要指定用哪个分区作为交换分区。在用fdisk命令进行分区时,所有的分区默认使用的文件系统类型为EXT4,如果要将某个分区作为交换分区,则首先必须更改该分区的类型。
在fdisk命令中,使用“t”指令可以更改分区的类型,只要依次指定分区序号及更改后分区类型ID标记号即可。如果不知道分区类型对应的ID号,可以输入“l”指令查看各种分区类型所对应的ID标记号。Linux系统中最常用的两种文件系统EXT4的ID标记号为83、swap的ID标记号为82(十六进制数)。
例:将逻辑分区/dev/sdb6的类型更改为swap。
确认修改无误后,输入“w”指令保存退出fdisk分区工具。
分区创建成功后,要保存分区表,重启系统生效。如果不想重启,需要执行“partprobe /dev/sdb”命令。
2
、创建交换文件系统
配置好交换分区空间之后,接着需要将交换分区格式化成专门的swap文件系统。
注意,这里不能使用先前的mkfs格式化命令,要创建交换文件系统,必须使用专门的mkswap命令。
例:将/dev/sdb6格式化为swap交换文件系统。
[root@localhost ~]# mkswap /dev/sdb6
3
、启用交换分区
最后需要使用swapon命令启用交换分区。
[root@localhost ~]# swapon /dev/sdb6
或者使用swapon –a 命令启用所有的交换分区。
想要查看系统的交换分区,可以使用swapon –s命令。
[root@localhost ~]# swapon -s
Filename
Type Size Used Priority
/dev/dm-1
partition 2031608 0 -1
/dev/sdb6
partition 7317568 0 -2
可以看到,现在系统中已经启用了两个交换分区,其中的/dev/dm-1是系统所默认创建的交换分区。
需要注意的是,这个由我们手工创建并启用的/dev/sdb6交换分区,同之前介绍的手工挂载的磁盘分区一样,也是临时性的。如果希望系统在每次开机或重启时能够自动挂载这个交换分区,同样需要修改“/etc/fstab”文件,在文件末尾添加下面一行:
/dev/sdb6
swap swap defaults 0 0
如果想要将某个交换分区关闭,可以使用swapoff命令。
例:关闭/dev/sdb6交换分区。
[root@localhost ~]# swapoff /dev/sdb6
[root@localhost ~]# swapon -s
Filename
Type Size Used Priority
/dev/dm-1
partition 2031608 0 -1