『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

时间:2023-12-06 09:21:08

1、查看swap分区情况

swap分区就相当于是内存的一个缓冲区,如果内存被占满,可以用swap分区代替内存使用,用来提升Linux系统性能。

如果在实际的服务器上,分配的swap分区不够用了,需要扩大swap分区,我们是可以不重新安装操作系统的,那样很麻烦,swap分区是支持手动扩展的。

一般通过free命令来查看内存的使用情况。

如下图所示:

『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

上图中,前两行是内存的使用情况,说明如下:

  • total :总内存数。
  • used :使用的内存。
  • free :空闲内容。
  • buffers :缓冲。加速硬盘的写入速度。
  • cached :缓存。加速硬盘的读取速度。

swap分区内核直接调用,用户是干预不了的。但是系统会按照系统的实际需求,自动分配bufferscached的大小。

说明:

  • buffers缓冲,指的是当我们把内存中的数据存入硬盘的时候,内核可以把分散的写集中起来,统一优化磁盘的写入,比如可以把多次小的写合并成单次大的写等等。
  • cached缓存,指的是从磁盘读取文件的时候,用来存储一些从硬盘读取的数据。这样,下次访问这些文件数据时,就可以直接从内存中快速获取,而不需要再次访问缓慢的硬盘。

例如:-/+ buffers/cache:125M 862M的意思。

『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

如上图,used的内存使用是192MB,这192MB包括bufferscached的空间和实际使用的内存空间,除去bufferscached的空间,就是125MB左右的真实内存占用空间。而free列则是空闲内存为795MB,实际的空闲内存为795MB加上bufferscached的空间,实际空闲内存为862MB。

2、手动修改swap分区

增加swap分区的前提,还有得有个空白的硬盘空间。(虚拟机添加新硬盘如请看fdisk命令进行手动分区文章中有讲)

(1)查看sdb硬盘分区情况。

如下图所示:

『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

(2)结果是没有任何分区,下面开始进行分区。

如下图所示:

『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

上图执行的是:

  • 创建一个分区(n)。
  • 选择创建主分区(p)。
  • 分区编号为1。
  • 从头开始划分空间。
  • 划分1GB大小的空间。

再次查看sdb分区情况,如下图所示:

『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

此时出现了sdb1分区,但是分区的系统ID编号是83,也就是Linux系统的标准分区。而我们知道swap分区的ID号是82,所以我们需要修改sdb1分区的ID号为82。(fdisk交互指令请看fdisk命令进行手工分区文章中有讲)

(3)修改分区的系统ID号。

如下图所示:

『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

上图的执行操作为:修改分区的系统ID(t);输入分区号,给哪个分区修改,因为我们sdb硬盘上只有一个分区,就默认选择了,如果有多个分区,需要你输入要修改的分区号;最后要把该分区的分区号改为82(swap分区的系统ID号)。

再次查看sdb分区情况,如下图所示:

『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

我们可以看到sdb1的分区变成了swap分区,系统ID号为了82。

(4)最后我们就可以保存退出了。

如下图所示:

『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

注意:最后的提示,并没有需要我们对系统进行重启。

3、格式化swap分区

我们需要把上边的sdb1分区,格式化成swap分区的文件系统,(而不是普通分区用mkfs命令格式化成ext4文件系统)。

swap分区是需要Linux系统内核直接访问的,所以swap分区的格式化命令为mkswap

执行命令:[root@localhost ~]# mkswap /dev/sdb1

结果如下图:

『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

4、使用swap分区

在使用swap分区之前,我们先来执行free命令看看内存的使用情况,命令如下:

『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

发现swap分区还是和之前的大小一样。现在我们还需要通过swapon命令,把sdb1swap分区加载进系统。

执行命令:[root@localhost ~]# swapon /dev/sdb1

再次查看swap分区的情况,变成了1.5GB。

『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

注意:执行:[root@localhost ~]# swapon /dev/sdb1,是临时生效的,如果重启启动系统,还需要再次执行。如果想要永久生效,需要配置下面的自动挂载。

5、配置swap分区开机之后自动挂载

手动分配swap分区的最后一步,就是配置swap分区的自动挂载。

编辑/etc/fstab配置文件。

#设备文件名  挂载点  文件系统  挂载权限选项  备份权限  检查磁盘权限
/dev/sdb1 swap swap defaults 0 0

注意:挂载点不要写成/swapswap分区是单独的分区,单独的文件类型。设备文件名最好写成UUID,最后两个选项要写成00