Linux_交换分区SWAP

时间:2023-03-09 20:48:16
Linux_交换分区SWAP

一、交换分区SWAP

1️⃣:交换分区SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用。

2️⃣:交换分区一般指定虚拟内存的大小为实际内存的1~1.5倍。

3️⃣:如果实际内存超过8GB,可以直接划分16GB给虚拟内存即可,如果虚拟内存不够用的情况,须增加一个虚拟磁盘,由于不能给原有的磁盘重新分区,所以可以选择新建。

二、创建SWAP

1、方式一:创建SWAP文件

  • 使用dd if=/dev/zero of=/root/swap bs=1M count=2048创建2G大小的文件
    • if:指定源- -般写/dev/zero
    • of:指定目标
    • bs:定义块大小
    • count:数量
[root@localhost ~]# dd if=/dev/zero of=/root/swap bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 44.8512 s, 47.9 MB/s
[root@localhost ~]# du -sh /root/swap
2.0G /root/swap
  • 格式化刚刚创建的swap文件
[root@localhost ~]# mkswap -f /root/swap       // -f :指定格式化文件(目标是文件,则加-f ;若为磁盘分区,则不需要加-f)
mkswap: /root/swap: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=20e1675b-3206-497c-b33b-9175be73083f
  • 根据提示设置改格式化后文件的权限为600(此步骤也可以不做)
[root@localhost ~]# ll swap
-rw-r--r-- 1 root root 2147483648 Aug 20 03:03 swap
[root@localhost ~]# chmod 600 /root/swap
[root@localhost ~]# ll swap
-rw------- 1 root root 2147483648 Aug 20 03:03 swap
  • 查看刚刚格式化swap文件的属性
[root@localhost ~]# blkid /root/swap
/root/swap: UUID="20e1675b-3206-497c-b33b-9175be73083f" TYPE="swap"
  • 查看当前SWAP分区情况
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 1.8Gi 207Mi 65Mi 5.0Mi 1.5Gi 1.4Gi
Swap: 2.0Gi 3.0Mi 2.0Gi
  • 挂载SWAP分区
[root@localhost ~]# swapon /root/swap
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 1.8Gi 209Mi 64Mi 5.0Mi 1.5Gi 1.4Gi
Swap: 4.0Gi 3.0Mi 4.0Gi
  • 卸载SWAP分区
[root@localhost ~]# swapoff /root/swap
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 1.8Gi 207Mi 110Mi 5.0Mi 1.5Gi 1.4Gi
Swap: 2.0Gi 3.0Mi 2.0Gi

2、方式二:使用磁盘分区创建SWAP分区

  • 创建一个磁盘主分区
[root@localhost ~]# fdisk /dev/nvme0n2 

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. Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-104857599, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-104857599, default 104857599): +4G Created a new partition 1 of type 'Linux' and of size 4 GiB.
Partition #1 contains a swap signature. The signature will be removed by a write command. Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
  • 调整刚刚创建的磁盘分区ID为82
[root@localhost ~]# fdisk /dev/nvme0n2
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. Command (m for help): p //查看分区列表
Disk /dev/nvme0n2: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8f03f9d8 Device Boot Start End Sectors Size Id Type
/dev/nvme0n2p1 2048 8390655 8388608 4G 83 Linux Command (m for help): t //更改分区ID
Selected partition 1 //默认显著磁盘的第一个分区;如果有多个分区可选,就需要手动选择分区
Hex code (type L to list all codes): 82 //输入分区编号82;可以使用 ‘l’查看看所有的分区ID
Changed type of partition 'Linux' to 'Linux swap / Solaris'. Command (m for help): p //查看分区列表
Disk /dev/nvme0n2: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8f03f9d8 Device Boot Start End Sectors Size Id Type
/dev/nvme0n2p1 2048 8390655 8388608 4G 82 Linux swap / Solaris //id 为82 ;type 为 Linux swap Command (m for help): w //保存退出
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
  • 格式化刚刚创建的磁盘分区
[root@localhost ~]# mkswap /dev/nvme0n2p1
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=64bff483-41ba-4180-ae1c-eab2e1075c84

[root@localhost ~]# blkid /dev/nvme0n2p1
/dev/nvme0n2p1: UUID="64bff483-41ba-4180-ae1c-eab2e1075c84" TYPE="swap" PARTUUID="8f03f9d8-01"  
  • 在/etc/fstab文件写入永久挂载(开机自动挂载)
//先查看一下SWAP分区的UUID
UUID="64bff483-41ba-4180-ae1c-eab2e1075c84" //在/etc/fstab文件写入内容
[root@localhost ~]# vim /etc/fstab
..........
UUID="64bff483-41ba-4180-ae1c-eab2e1075c84" swap swap defaults 0 0  
  • 挂载SWAP分区
 //手下查看一下SWAP分区情况
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 1.8Gi 204Mi 1.3Gi 8.0Mi 253Mi 1.4Gi
Swap: 2.0Gi 0B 2.0Gi //挂载SWAP分区
[root@localhost ~]# swapon /dev/nvme0n2p1 //查看挂载后的SWAP分区情况
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 1.8Gi 208Mi 1.3Gi 8.0Mi 253Mi 1.4Gi
Swap: 6.0Gi 0B 6.0Gi
  • 卸载SWAP分区
 //查看SWAP分区情况
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 1.8Gi 208Mi 1.3Gi 8.0Mi 253Mi 1.4Gi
Swap: 6.0Gi 0B 6.0Gi //卸载SWAP分区
[root@localhost ~]# swapoff /dev/nvme0n2p1 //查看卸载后SWAP分区情况
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 1.8Gi 204Mi 1.3Gi 8.0Mi 253Mi 1.4Gi
Swap: 2.0Gi 0B 2.0Gi
  • 使用swapon -s 查看所有在使用交换分区
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 2146300 0 -2
/dev/nvme0n2p1 partition 4194300 0 -3 //这是刚刚创建的交换分区