1、查看swap分区情况
swap
分区就相当于是内存的一个缓冲区,如果内存被占满,可以用swap
分区代替内存使用,用来提升Linux系统性能。
如果在实际的服务器上,分配的swap
分区不够用了,需要扩大swap
分区,我们是可以不重新安装操作系统的,那样很麻烦,swap
分区是支持手动扩展的。
一般通过free
命令来查看内存的使用情况。
如下图所示:
上图中,前两行是内存的使用情况,说明如下:
-
total
:总内存数。 -
used
:使用的内存。 -
free
:空闲内容。 -
buffers
:缓冲。加速硬盘的写入速度。 -
cached
:缓存。加速硬盘的读取速度。
swap
分区内核直接调用,用户是干预不了的。但是系统会按照系统的实际需求,自动分配buffers
和cached
的大小。
说明:
buffers
缓冲,指的是当我们把内存中的数据存入硬盘的时候,内核可以把分散的写集中起来,统一优化磁盘的写入,比如可以把多次小的写合并成单次大的写等等。cached
缓存,指的是从磁盘读取文件的时候,用来存储一些从硬盘读取的数据。这样,下次访问这些文件数据时,就可以直接从内存中快速获取,而不需要再次访问缓慢的硬盘。
例如:-/+ buffers/cache:125M 862M
的意思。
如上图,used
的内存使用是192MB,这192MB包括buffers
和cached
的空间和实际使用的内存空间,除去buffers
和cached
的空间,就是125MB左右的真实内存占用空间。而free
列则是空闲内存为795MB,实际的空闲内存为795MB加上buffers
和cached
的空间,实际空闲内存为862MB。
2、手动修改swap分区
增加swap
分区的前提,还有得有个空白的硬盘空间。(虚拟机添加新硬盘如请看fdisk命令进行手动分区文章中有讲)
(1)查看sdb硬盘分区情况。
如下图所示:
(2)结果是没有任何分区,下面开始进行分区。
如下图所示:
上图执行的是:
- 创建一个分区(n)。
- 选择创建主分区(p)。
- 分区编号为1。
- 从头开始划分空间。
- 划分1GB大小的空间。
再次查看sdb
分区情况,如下图所示:
此时出现了sdb1
分区,但是分区的系统ID编号是83
,也就是Linux系统的标准分区。而我们知道swap
分区的ID号是82
,所以我们需要修改sdb1
分区的ID号为82
。(fdisk
交互指令请看fdisk命令进行手工分区文章中有讲)
(3)修改分区的系统ID号。
如下图所示:
上图的执行操作为:修改分区的系统ID(t);输入分区号,给哪个分区修改,因为我们sdb
硬盘上只有一个分区,就默认选择了,如果有多个分区,需要你输入要修改的分区号;最后要把该分区的分区号改为82(swap
分区的系统ID号)。
再次查看sdb
分区情况,如下图所示:
我们可以看到sdb1
的分区变成了swap
分区,系统ID号为了82。
(4)最后我们就可以保存退出了。
如下图所示:
注意:最后的提示,并没有需要我们对系统进行重启。
3、格式化swap
分区
我们需要把上边的sdb1
分区,格式化成swap
分区的文件系统,(而不是普通分区用mkfs
命令格式化成ext4
文件系统)。
swap
分区是需要Linux系统内核直接访问的,所以swap
分区的格式化命令为mkswap
。
执行命令:[root@localhost ~]# mkswap /dev/sdb1
,
结果如下图:
4、使用swap分区
在使用swap
分区之前,我们先来执行free
命令看看内存的使用情况,命令如下:
发现swap
分区还是和之前的大小一样。现在我们还需要通过swapon
命令,把sdb1
的swap
分区加载进系统。
执行命令:[root@localhost ~]# swapon /dev/sdb1
再次查看swap
分区的情况,变成了1.5GB。
注意:执行:
[root@localhost ~]# swapon /dev/sdb1
,是临时生效的,如果重启启动系统,还需要再次执行。如果想要永久生效,需要配置下面的自动挂载。
5、配置swap分区开机之后自动挂载
手动分配swap
分区的最后一步,就是配置swap
分区的自动挂载。
编辑/etc/fstab
配置文件。
#设备文件名 挂载点 文件系统 挂载权限选项 备份权限 检查磁盘权限
/dev/sdb1 swap swap defaults 0 0
注意:挂载点不要写成
/swap
,swap
分区是单独的分区,单独的文件类型。设备文件名最好写成UUID,最后两个选项要写成00
。