Linux swap的创建与配置
在Linux下,swap的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。
Linux下的swap有两种实现形式,一种是通过某个物理磁盘分区来实现swap,另一种是通过虚拟内存文件来实现swap。
一般来说可以按照如下规则设置swap大小:
4G以内的物理内存,SWAP 设置为内存的2倍。
4-8G的物理内存,SWAP 等于内存大小。
8-64G 的物理内存,SWAP 设置为8G。
64-256G物理内存,SWAP 设置为16G。
查看系统中Swap可以使用free命令或者查看/proc/swaps文件。
###物理磁盘分区来实现swap
1.通过分区软件创建一个分区。
分区类型fdisk下为82,gdisk下为8200,partep分区标记没有定义swap,其实分区后不更改分区类型也行测试也可以用,但为了在分区工具下方便查看最好还是把分区类型改成swap对应的分区类型。
分区类型就是分区软件下用来描述分区所要承载的文件系统的类型,比如分区类型为83表示为linxu分区,用于格式化成ext3 ext4等linux文件系统,分区创建的方法这里就不写了前面有分区创建的方法。
2.使用mkswap命令把分区格式化为swap分区
mkswap /dev/sdb1
3.使用swapon命令使交换分区/dev/sdb1生效
free -h
swapon /dev/sdb1 #使新添加的swap生效
free -h
4.将新添加的交换分区添加到/etc/fstab文件中使之开机启动(根据不同的发行版将下面的内容添加到/etc/fstab中,添加完后最好用swapon -a命令查看添加的是否有问题)
UUID=47fe2c83-c4b9-4ee5-ad91-4a9642f66df5 none swap sw 0 0 #Debian9.5默认的格式,UUID为对应的交换分区UUID
UUID=47fe2c83-c4b9-4ee5-ad91-4a9642f66df5 swap swap defaults 0 0 #CentOS7-1810与openSUSE15默认的格式,UUID为对应的交换分区UUID
###使用文件来实现swap(当系统内没有剩余可用的分区时我们可以用在Linux的某个目录下创建一个空白文件,通过把这个文件格式化成swap从而实现创建swap的过程。)
1.通过dd命令在/tmp/目录下新增加一个1G大小的空文件。
dd if=/dev/zero of=/tmp/swap bs=1G count=1 #增加一个1G大小的空文件
chmod 600 /tmp/swap #修改文件权限,只有root读写
ls -lh /tmp/swap #查看创建的文件大小和权限
2.使用mkswap命令把创建的文件格式化为swap
mkswap /tmp/swap
3.使用swapon命令使swap生效
swapon /tmp/swap
swapon -s
4.将新添加的交换分区添加到/etc/fstab文件中使之开机启动(根据不同的发行版将下面的内容添加到/etc/fstab中,添加完后最好用swapon -a命令查看添加的是否有问题)
/tmp/swap none swap sw 0 0 #Debian9.5默认的格式,这里不要用UUID,这是因为系统只会查询块设备,不会查询文件
/tmp/swap swap swap defaults 0 0 #CentOS7-1810与openSUSE15默认的格式
###Linux swapon命令参数及用法
swapon 是开启swap,相对的便有一个关闭swap的指令,swapoff
swapon [选项] [设备]
-h 显示帮助信息
-V 显示版本信息
-v 显示详细模式
-s 显示swap的使用情况,可以查看所有激活的swap
-a 将/etc/fstab文件中所有设置为swap的设备启用
-p 设定优先权,你可以在0到32767中间选一个数字给他。或是在 /etc/fstab 里面加上 pri=[value] ([value]就是0~32767中间一个数字),然后你就可以很方便的直接使用 swapon -a 来启动他们,而且有优先权设定。
###Linux swapoff命令参数及用法
swapoff [选项] [设备]
-a 将/etc/fstab文件中所有设置为swap的设备关闭
举例:swapoff /dev/sdb1 # 关闭swap分区/dev/sdb1