开发者学堂课程【Linux 操作系统实战:Swap 分区】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/699/detail/12294
Swap 分区
内容介绍
一、何为 Swap 分区
二、如何创建 Swap 分区
三、课程回顾
一、何为 Swap 分区
Swap 分区通常被称为交换分区,这是一块特殊的硬盘空间,即当实际内存不够用的时候,操作系统会从内存中取出一部分暂时不用的数据,放在交换分区中,从而为当前运行的程序腾出足够的内存空间。
使用 swap 交换分区,显著的优点是,通过操作系统的调度,应用程序实际可以使用的内存空间将远远超过系统的物理内存。由于硬盘空间的价格远比 RAM 要低,因此这种方式无疑是经济实惠的,使用 Swap 分区就可以满足大部分使用情况。
当然,频繁地读写硬盘,会显著降低操作系统的运行速率,所以不建议长时间的频繁读写,这也是使用 Swap 交换分区最大的限制。
在创建 Swap 分区之前,具体使用多大的 swap 分区,取决于物理内存大小和硬盘的容量。一般来讲,swap 分区容量建议是内存的两倍(假设现在内存是8G,那么分区就建议是原来的2 倍。如果情况允许的话,也可以是三倍)
二、如何创建 Swap 分区
swap 分区可以在安装操作系统的时候创建,比如划分一个 poot,host 或是 uesr。现在购买的阿里云服务器,默认是没有 Swap 分区的,也可以在系统安装完毕后创建,这里讲进入 Linux 系统皿创建 Swap 的一般方法:
A.查看 swap 空间大小:free -m
,这是一个基本操作,要在查询空间之后,才知道要创建多大的空间
B.添加一个交换文件:创建大小为512M 的交换文件;在这用到 dd 的命令,以前这个命令主要是用来创建文件的光盘影像等等。Dd 这个命令是有参数的,这个 if 是原文件,of 是目标文件,目标文件和 if 是配合使用的,创立号分区之后,要设立区块的大小,大小为1M,块数为512k,那么整个空间就是512M。
#dd if=/dev/zero of=/ swapfile1bs = 1024kcount =512
使用 mkswap 命令来设置交换文件;
#mkswap/swapfile1
启用交换分区:
#swapon/swapfile1
启动时不会自动创建 Swap 分区,就要写入/etc/fstab
,以便在引导时启用:
/ swapfile1 swap swap defaults 0 0
,这个命令是比较简单的,直接敲入即可。
#cat/proc/swaps
或 free 命令査看是否确定交换分区已被启用,如果已经启动了就会看到相关的配置信息
C.禁用交换分区:#swapoff / swapfile1
从/etc/fsab
启动分区项中删除项目
实操演练:
先输入语句,free -m
查询内存情况,结果如下图,可以看到内存中没有创建Swap 分区
也可以用 free -h
的命令,来查看内存信息,结果如下图:
接下来使用命令进行创建,语句为dd if=/dev/zero of=/swap bs=1024k count=512
,创建成功后,
结果如下:
之后就可以使用 mkswap 交换文件,先来看一下 swap 是否创建成功,如下图,表示创建成功
之后用 mkswap 格式化,看是否可以格式化为 swap 格式,输入语句mkswap /swap
,结果如下图,可以看到设置成功了,并且有一个 uuid 编码,这个是类似于网卡的编码一样,给 swap 设置一个标志好,设置成功后,启动分区。
输入语句 swapon /swap,启动之后没有报错就说明成功了,如下图所示。
之后用 free -h
的命令查看是否成功,结果如下,共有512M,现在命令成功的创建了
但现在有一个问题,此时随让时创建成功的,但并没有加入到自启动中去,如果重启一下系统,那么这个分区有可能就不会存在。可以使用 reboot 命令重新启动,语句为,reboot。等待反应。
这个重启是需要时间的,先返回到服务器上,重新启动服务器,同样会输入 ip 地址和端口。如下图。
现在开始连接服务器,同样用 free -h
命令来查看是否创建成功,先输入这个命令,语句为 top,结果如下,可以得到使用的时间。Top 命令是重要的一项内容,可以得到很多信息。
再使用语句 free -h
查看,结果如下,swap 显示的是0B,说明没有自启动
所以创建一个分区后,要想自启动,就一定要创建到 etc 目录下去,让它在引导的时候可以自启动。
做法:
先选择 fstab 这个文件,语句为 vi /etc/fstab
。得到结果如下,得到相关信息,uuid 的标志是唯一的。
实现自启动就要输入相关的命令来实现自启动,输入语句/swap swap swap defaults 0 0
,是把 swap 这个命令加入到自启动中,之后保存,就编辑好了。这是一个很常规的命令。
设置好 swap 分区后,就要在 etc 下的 fstab 目录下放进去,就可以实现自启动。
再重新启动,观察是否可以重新启动,同样使用 reboot 命令,与上回的步骤相同,要先等待一会,从服务器上得到的IP地址。
再写一个新的客户端,端口,字号等的设置完成后,已经启动后,就要进入客户端中,在运用语句 free -h
命令,得到以下结果,之前使用的这个语 swap 的内存是0B,现在内存还存在,说明这个 swap 分区的命令是创建成功的。
实现自启动就等于是挂载成功了,除了使用 free -h
命令还可以用cat /proc/swaps
,得到结果,会出现 swap 的文件,表示确实挂载成功,swap 分区也创建成功。
最后也可以把分区删掉,先进入分区,就是语句为 swapoff /swap
,之后再输入cat /proc/swaps
语句,查看 swap 分区是否删除,得到结果如下,分区已经删除。
现在已经成功的实现 swap 的分区,挂载以及删除,swap 的命令内容就是这样。基本上使用这些命令来使用 swap 分区。
三、课程回顾
首先简述了内存的管理,讲到和内存相关的重要文件,proc 和 sys,介绍了重要的子目录和一些文件的相关信息;
之后讲解了 Linux 内存和系统性能常用监控管理的命令,例如 free、ps、top 等相关命令并进行了实操演练;
最后是讲解的 swap 分区的实操演练,包括创建、查看、成功挂载以及最后的卸载。