一、内存交换分区(swap)
- 概念:存在硬盘中的一个分区,用来暂时存放内存中的数据
- 功能与特点
- 功能:CPU读取的数据都是来自于内存,如果内存不足的时候,为了让后续的程序可以顺利运行,就会将暂时不使用的程序与数据挪到内存交换分区中,这样内存就会空出来给需要的程序加载使用
- 特点:如果硬件的设备资源足够的话,一般用不到内存交换分区。如果物理内存不足时,会使用到内存交换分区。所以早期安装Linux的时候,会使用到两个硬盘分区,一个是根目录,一个是内存交换分区
- 特点:内存交换分区默认处于停用状态,可以使用swapon命令启用或者写入到/etc/fstab配置文件中进行自动启用
- 一般来讲,swap 分区容量应大于物理内存大小,建议是内存的两倍,但不超过 2GB
- 何时使用到内存交换分区?
- ①目前主机的内存一般都在4GB以上,一般使用不到内存交换分区。但是服务器/工作站等需要,因为服务器/工作站有时可能会爆发出大量的网络请求,此时就需要内存交换分区来缓冲一下内存的使用量
- ②如果你的主机支持电源管理模式,也就是说你的Linux主机可以进入休眠模式,那么,运行当中的程序状态会被记录到内存交换区,以作为唤醒主机的状态依据
- ③另外,某些程序在运行时,可能会利用内存交换分区的特性来存放一些数据
- 综上所述,内存交换分区还是需要建立的,但是不需要建立太大
- 内存交换分区的创建,有两种方式可以创建
- 第一种:使用物理内存创建内存交换分区
- 第二种:使用文件创建内存交换分区
二、相关命令
mkswap命令
mkswap [options] device [size]
swapon命令
- 功能:启动交换分区、观察交换分区信息等(与系统格式化mount命令很相似)
- 格式:
swapon [options] [specialfile...]
swapoff [-va] [specialfile...]
- 例如:
- ①启用交换分区:swapon 设备文件名
- ②查看当前系统处于使用状态的交换分区信息:swapon -s
- ③根据/etc/fstab配置文件的内容,将未自动启动的交换分区进行启用:swapon -a
swapoff命令
- 功能:与swapon命令相反,此命令是将内存交换分区关闭使用
- 格式:
swapon [options] [specialfile...]
swapoff [-va] [specialfile...]
三、使用物理内存创建内存交换分区
- 步骤:
- 第一步:划分一个新的分区。使用gdisk/fdisk命令在磁盘上划分出一个分区给系统作为内存交换分区
- 第二步:格式化。使用mkswap对分区进行格式化
- 第三步:启动swap设备。使用swapon命令
- 第四步(自选):设置开机自动启动。将信息写入/etc/fstab文件中
- 第四五(自选):观察状态。使用free与swapon -s命令观察内存的使用量
演示案例
- 第一步:划分出一个新的分区。因为我的Linux系统有过一个swap分区了,所以不再进行演示。可以根据自己磁盘格式,使用gdisk与fdisk执行n命令划分一个新的分区,交换分区大小自己设置(与普通磁盘分区的方法一模一样)
gdisk /dev/sda
n
w
y
partprobe
- 第二步:格式化。使用mkswap对分区进行格式化。我的系统中/dev/sda5是内存交换分区
格式化:mkswap /dev/sda5
- 第四步(自选):设置开机自动启动。将以下信息写入/etc/fstab文件中(注意:因为内存交换分区没有挂载点,所以第二栏填写swap)
UUID="21ef885b-2fd2-4afe-ae45-3916001c3b67" swap swap defaults 0 0
然后再更新/etc/fstab配置文件:swapon -a
- 第五步(自选):观察状态。使用free与swapon -s命令观察内存的使用量
- free命令:列出磁盘所有的分区信息(但不显示loop设备类型的交换分区)。Mem为磁盘主要内存,Swap为交换分区信息。信息被分为6栏(buffers为缓存占用量)
四、使用文件创建内存交换分区
- 步骤:
- 第一步:使用dd命令创建一个新文件
- 第二步:格式化。使用mkswap对分区进行格式化
- 第三步:启动swap设备。使用swapon命令
- 第四步(自选):设置开机自动启动。将信息写入/etc/fstab文件中
具体案例
- 第一步:使用dd命令创建一个新文件。此处我在/tmp目录下建立一个swap文件,大小为128M
- 第三步:启动swap设备。使用swapon将/tmp/swap启动
- 第四步(自选):设置开机自动启动。将以下信息写入/etc/fstab文件中。注意:第一栏一定要使用文件名而不使用UUID,因为系统仅会查询区块设备不会查询文件。并且内存交换分区没有挂载点,所以第二栏填写swap
/tmp/swap swap swap defaults 0 0
然后再更新/etc/fstab配置文件:swapon -a
五、设置内存交换分区自动启用
- 原理:原理与自动挂载的原理相同,就是当系统在启动时,自动进入启用状态,不再需要使用swapon命令进行启用
- 方法:
- 将内存交换分区信息写入/etc/fstab配置文件中
- 并且用swapon -a命令更新状态
- 我是小董,V公众点击"笔记白嫖"解锁更多【Linux入门基础】资料内容。