浅谈swap的分区特性以及扩建
swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。当没有足够的RAM 保存系统处理的数据时会将数据写入 swap 分区
当系统缺乏 swap 空间时,内核会因 RAM 内存耗尽而终止进程。配置过多swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空间还会掩盖内存泄露.
- 推荐系统 swap 分区容量
示例如下:
- 创建交换分区或者文件
lsblk #查看硬盘分区情况
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 6.7G 0 rom
nvme0n1 259:0 0 200G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
├─nvme0n1p2 259:2 0 100G 0 part /data
├─nvme0n1p3 259:3 0 50G 0 part /
├─nvme0n1p4 259:4 0 1K 0 part
└─nvme0n1p5 259:5 0 2G 0 part [SWAP]
dd if=/dev/zero of=/data/swap1.img bs=2G count=1 #在/data 目录上做一个2G的空间出来
records in
records out
2147479552 bytes (2.1 GB, 2.0 GiB) copied, 60.0621 s, 35.8 MB/s
mkswap /data/swap1.img #使用mkswap写入特殊签名
mkswap: /data/swap1.img: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 2 GiB (2147475456 bytes)
no label, UUID=b251c778-e3b5-496a-84e7-5de95a6afac6
blkid /data/swap1.img #查看是否成功
/data/swap1.img: UUID="b251c778-e3b5-496a-84e7-5de95a6afac6" TYPE="swap"
- 此处用到一个命令 dd ,详细参数如下:
语法:dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#if=file 从所命名文件读取而不是从标准输入
of=file 写到所命名的文件而不是到标准输出
ibs=size 一次读size个byte
obs=size 一次写size个byte
bs=size block size, 指定块大小(既是是ibs也是obs)
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 复制n个bs - 设置开机自启动挂载配置
vim /etc/fstab
UUID=65bdf300-b361-40c7-aa7a-53087bc78a2a / xfs defaults 0 0
UUID=8bc9beb6-f5f8-49b9-8eec-fcfcbb5c161d /boot ext4 defaults 1 2
UUID=59a4110a-f477-49e0-9be8-533d8bf8328d /data xfs defaults 0 0
UUID=1a693b1a-93f7-4b41-905b-dbf4357db1ca swap swap defaults 0 0
/data/swap1.img swap swap defaults 0 0
#注意此处做的swap分区是文件,它不是硬件,绝对不能用UUID来挂载,因为文件的UUID太庞大了,系统压根没法去找,硬件设备很少就那几个,所以可以用UUID
注意swap这个分区必须要挂载到/etc/fstab 文件中,才可以用命令激活分区,否则没反应
- 激活swap 分区
swapon -a
swapon: /data/swap1.img: insecure permissions 0644, 0600 suggested.
# 此处出错,提示建议给文件权限600
chomd 600 /data/swap1.img
free -h
total used free shared buff/cache available
Mem: 1.8Gi 411Mi 1.2Gi 1.0Mi 156Mi 1.2Gi
Swap: 4.0Gi 288Mi 3.7Gi
swapon -v
NAME TYPE SIZE USED PRIO
/dev/nvme0n1p5 partition 2G 288.3M -2
/data/swap1.img file 2G 0B -3 此处就是我们建立新的swap分区,因为它是文件系统。
- swap 的优先级调整
swapoff /data/swap1.img #先关闭要调整的swap分区
swapon -v
NAME TYPE SIZE USED PRIO
/dev/nvme0n1p5 partition 2G 287.9M -2
swapon -p 20 /data/swap1.img #这个优先级是0-99999 数字越大优先级越高
- swap 分区的卸载
swapoff /data/swap1.img
swapon -s
Filename Type Size Used Priority
/dev/nvme0n1p5 partition 2097148 294752 -2
[root@Centos8 /data]#free -h
total used free shared buff/cache available
Mem: 1.8Gi 409Mi 1.2Gi 1.0Mi 156Mi 1.2Gi
Swap: 2.0Gi 287Mi 1.7Gi