Linux内存交换分区的查看与创建(mkswap、swapon、swapoff)
原创
©著作权归作者所有:来自51CTO博客作者董哥的黑板报的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、内存交换分区(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入门基础】资料内容。