提到 交换分区,大家自然而然就会提出问题 :
什么是交换分区 ??
什么是虚拟内存?? 交换分区和虚拟内存有啥关系 ??
那么,为了更好地理解上述问题,也为了更好地理解 交换分区,我们先带大家进入一个情景模式,
大家在这个情景模式里去体会 到底什么是 交换分区~!!!!
在情景代入之前,先来带大家回忆一个内容,就是我们当时在安装 Linux 系统的时候,其中,有一步操作
就是进行 磁盘空间划分,我们主要划分了 三个内容,有 / 、 /boot、 还有一个是 swap 。
我们在前面介绍 分区工具的时候,经常使用的一个命令 lsblk ,这个命令就展示了 上面三个内容
![](https://img-blog.csdnimg.cn/img_convert/2d524b3c3d3b48f396f0cf44efa31a1a.png)
我们今天主要说的就是这个 swap 。
这个 swap 就可以理解为 虚拟内存~!!!! 它在我们 Linux 里叫 swap 交换分区 ,
windows 系统上有 虚拟内存的概念~!!! 所以,为了更好地理解抽象概念,你
就可以把 swap 交换分区 理解成 虚拟内存~!!!!
情景代入 :
我们平时在运行电脑的时候,一台电脑的设备配置就这么个情况,
那电脑在运行程序的时候,有时也会遇到内存不够用的情况,
比如说,你这台电脑最多只能运行 10 个进程,结果现在必须得打开第 11 个程序,怎么办??
那解决的办法就是, 需要有让一个程序暂时让出内存,让第11个程序先用,先运行。
那么这个让内存的过程是怎样的呢?? 我们说起来倒是蛮容易的,动动嘴皮子就让了,
那具体让内存的过程是怎样的呢??
是把要让内存的这个程序运行的数据拷回到硬盘,如然后,就把内存让了出来,第11个程序就可以使用内存来运行了。
那这就存在一个问题,就是 程序在内存里 切入和切出的问题,那就存在 内存和磁盘进行沟通( 交互 )的问题。
所以说,不关你是多大的内存,那几乎都有内存不够用的时候,(你别管,这种不够用的时候概率大不
大,反正就是有不够用的时候,反正我就碰到过不够用的时候 ~)
这就开始引入虚拟内存了,拿上面 内存不够用的情况来说, 要运行 第 11 个程序,我们不是把一个程序先让出内存来了嘛,就是把这个程序切出内存,把程序的数据拷回到硬盘了,就是这个程序从内存中切出来后,去那里了呢??去磁盘里了。
所以, 在硬盘里就产生了另一个空间,这个空间就叫虚拟内存。
这个虚拟内存的作用就是 把内存里运行的不常用的程序暂时放到虚拟内存里去,给内存腾出点空间。
硬盘上的这块儿空间--虚拟内存,它就只和内存进行沟通,虚拟内存虽然是在硬盘里的,但它和硬盘里的其它空间是不一样的~!!!
官方 :
在 Linux 系统中,swap 交换分区的作用类似于 Windows 系统中 “虚拟内存 ”。
当有程序被调入内存后,但是该程序又不是常被 CPU 所取用时,那么这些不常被使用的程序将会被放
到硬盘的 swap 交换分区当中,而将速度较快的内存空间释放给真正需要的程序使用,以避免由于物理
内存不足而造成的系统效能低的问题。
如果系统没有 swap 交换分区,或者现有交换分区的容量不够用时,可扩展 swap 交换分区 ~!!
扩展 swap 交换分区 :
![](https://img-blog.csdnimg.cn/img_convert/dc27c11625364203843bf24bbf713855.png)
swap 交换分区的文件系统 是 swap ,不再是 xfs,ext3,ext4 等文件系统~!!!
示例 :
我们先使用 lsblk 来看下 磁盘使用情况
![](https://img-blog.csdnimg.cn/img_convert/2464005e76f948a781461183ac18bd8f.png)
使用 mkswap 来指定那一块儿设备为 交换分区
[root@fsw ~]# mkswap /dev/nvme0n2p2
![](https://img-blog.csdnimg.cn/img_convert/76df58eab69649d9b39c7d2e7327cacf.png)
我们使用 swapon -s 选项查看下 交换分区的使用情况
[root@fsw ~]# swapon -s
![](https://img-blog.csdnimg.cn/img_convert/8a3d10ff31c045f4ac2d816df0d78a2f.png)
发现没有 /dev/nvme0n2p2 的影子
我们再使用 swapon 启用下 /dev/nvme0n2p2
[root@fsw ~]# swapon /dev/nvme0n2p2
再 查看下
[root@fsw ~]# swapon -s
![](https://img-blog.csdnimg.cn/img_convert/0cb8b9ec5b5d493eaec59e22f7c70ddb.png)
这个时候就显示出 /dev/nvme0n2p2 的信息了~!!
我们可以再用 lsblk 看看磁盘情况
![](https://img-blog.csdnimg.cn/img_convert/37b0bf607761472c929bb12242ab6cec.png)
显然,这时 nvme0n2p2 挂载点已经显示 SWAP 了~!!!
我们再使用下 swapoff 来禁止 /dev/nvme0n2p2 设备
[root@fsw ~]# swapoff /dev/nvme0n2p2
![](https://img-blog.csdnimg.cn/img_convert/359790cb9af74510b1692a274d58d89d.png)
再使用 查看 交换分区信息时,已经没有 /dev/nvme0n2p2 的信息了~!!
以上就是 交换分区的简单介绍及 命令使用 ~!!!!