程序在运行时所有数据是在RAM。当RAM使用量超过了限额,为了使系统更加稳定,我们在硬盘上划分一部分空间来作内存缓冲区swap。
当内存使用超过限额,内核会把内存中闲置的数据存放到swap中
当程序需要swap分区中的数据时内核将swap分区中的数据在交还给内存进程处理
说明:HIBERNATE是一个开源框架,做数据的插件。HIBERNATE开启之后,会暂存系统的电源信息。开机之后会把电源信息交还给内存,使得开机速度变快
①查看swap分区
[root@rhel8 ~]# swapon -s ##查看swap分区信息
Filename Type Size Used Priority
/dev/nvme0n1p2 partition 511996 0 -2
②创建swap分区
创建分区并设定分区的类型为Linuxswap
[root@rhel8 ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x034d90a2.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +100M
Created a new partition 1 of type 'Linux' and of size 100 MiB.
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'.
Command (m for help): wq
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rhel8 ~]# mkswap /dev/sda1 ##格式化设备位swap格式
Setting up swapspace version 1, size = 100 MiB (104853504 bytes)
no label, UUID=10cb10c6-fd54-4fc3-8871-bf084a991bf8
[root@rhel8 ~]# swapon -a /dev/sda1 ##激活
[root@rhel8 ~]# swapon -s ##查看swap信息,/dev/sda1优先级是-3
Filename Type Size Used Priority
/dev/nvme0n1p2 partition 511996 0 -2
/dev/sda1 partition 102396 0 -3
[root@rhel8 ~]# swapoff /dev/sda1 ##卸载swap
[root@rhel8 ~]# swapon /dev/sda1 -p 1 ##-p表示指定swap的优先级
[root@rhel8 ~]# swapon -s ##查看swap信息,/dev/sda1优先级1
Filename Type Size Used Priority
/dev/nvme0n1p2 partition 511996 0 -2
/dev/sda1 partition 102396 0 1
以上操作都是临时操作
③永久添加swap分区
[root@rhel8 ~]# vim /etc/fstab
/dev/sda1 swap swap pri=4 0 0
[root@rhel8 ~]# swapon -a
④删除swap
[root@rhel8 ~]# vim /etc/fstab
/dev/sda1 swap swap pri=4 0 0 ##删除此行
[root@rhel8 ~]# swapoff /dev/sda1
二.磁盘配额
1.磁盘配额作用
设定用户能写入指定设备的最大额度
2.磁盘配额设定方法①激活配额
mount /dev/sda1 /pub/ -o usrquota ##挂载设备并激活配额参数
quotaon -uv /dev/sda1 ##激活配额
②设定用户配额
edquota -u tony ##设定用户tony配额
Disk quotas for user tony (uid 1001):
设备 用户已经创建数据 软限 硬限 创建文件个数 软限 硬限
Filesystem blocks soft hard inodes soft hard
/dev/sda1 0 0 20480 0 0 0
③永久开启配额
vim /etc/fstab
/dev/sda1 /pub xfs defaults,usrquota 0 0
测试:截取超过20M数据失败,只能写入20M数据
[root@rhel8 ~]# su - tony ##切换到tony用户
[tony@rhel8 pub]$ dd if=/dev/zero of=/pub/tonyfile bs=1M count=40
dd: error writing '/pub/tonyfile': Disk quota exceeded
21+0 records in
20+0 records out
20971520 bytes (21 MB, 20 MiB) copied, 0.00919345 s, 2.3 GB/s
④关闭配额
quotaoff -uv /dev/sda1
vim /etc/fstab ##去掉配额参数usrquota