swapfile和hibernation-restore用的swap partition

在较新的Ubuntu release版中(Ubuntu1804),默认使用swapfile作为swap space,

那什么是swapfile,它和传统的swap partition有什么区别呢?为什么以及如何使用swapfile?在使用时哪些限制呢?我们一一来介绍一下。

安装过系统的同学都知道,在安装过程中有一步是设置SWAP分区,它是从hard disk中分出的一块,大小一般要大于physical memory。当物理内存不够用的时候,会把一部分内存内容交换到swap space中。这就是我们了解的traditional swap partition。

系统启动之后,查看swap space信息如下:

#free
              total        used        free      shared  buff/cache   available
Mem:        8065948     1284912     5468820      424904     1312216     6256220
Swap:       8287228           0     8287228

以上结果表示,在系统中,swap space大小为8GB,剩余8GB。swap space对应的我们在安装系统时,设置的SWAP分区。

#cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda5                               partition       8287228 0       -2

那如果发现8GB的swap space不够用,想要再加一些,该如何操作呢?这就要用到swapfile了,它跟swap partition不同的是,它可以随时增减、调整大小。

1.创建新的swapfile,大小为1GB
#sudo fallocate -1 1g /swapfile1
#file /swapfile1
swapfile1: data
/*格式化*/
/# mkswap swapfile1
mkswap: swapfile1: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=e25ce6dd-da17-4d21-a199-a9ba8b766a7a

2.开启swapfile
#swapon /swapfile1
swapon: /swapfile1: insecure permissions 0644, 0600 suggested.

3.查看系统中的swap space
/# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda5                               partition       8287228 0       -2
/swapfile1                              file            1048572 0       -3

# cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda5                               partition       8287228 0       -2
/swapfile1                              file            1048572 0       -3

#free
              total        used        free      shared  buff/cache   available
Mem:        8065948     1289224     5459220      426796     1317504     6250016
Swap:       9335800           0     9335800
看到swap space增大了1GB;

如果想要开机时,就开启swapfile1,需要修改/etc/fstab文件

#vim /etc/fstab

//加入swapfile1
#for swap partition
UUID=f65ff29d-770f-4ec6-8c1d-9a1caceb1a6f none           swap    defaults       0       0
#for swapfile
/swapfile1                                none           swap    sw             0       0

如果想要删除swap file,需要先关闭对应的swap space

#swapoff /swapfile1
#rm /swapfile1

//remove the entry in fstab

#cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda5                               partition       8287228 0       -2
到这里swapfile1就已经被删除了

swap space还有一个用处是在hibernation操作中,会把ram中的内容打包成hibernation image放在swap 中,等到resume时,再从swap space中获取image,将系统快速恢复到hibernation操作之前的状态,这种情况下,就只能使用swap partition,且需要保证swap partition大于RAM size。

在/etc/default/grub中,指定hibernation image存放的swap space信息

#blkid        //查看swap partition对应的UUID信息
/dev/sda1: UUID="5533-5234" TYPE="vfat" PARTUUID="eeaa3483-01"
/dev/sda5: UUID="f65ff29d-770f-4ec6-8c1d-9a1caceb1a6f" TYPE="swap" PARTUUID="eeaa3483-05"

#vim /etc/default/grub

在GRUB_CMDLINE_LINUX中,指定"resume=UUID=f65ff29d-770f-4ec6-8c1d-9a1caceb1a6f"

#update-grub
#rtcwake -s 20 -m disk
即可执行hibernation操作

参考文件

https://help.ubuntu.com/community/SwapFaq

https://blog.csdn.net/tanswer_/article/details/80785783

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值