思博网络 发表于 2022-6-17 15:55:20

【SPOTO思博网络】【网工入门干货】运维基础—Linux交换分区

啥是交换分区?
Linux交换分区即是Linux的swap分区,swap就是Linux下的虚拟内存分区。

我们知道 swap space 是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者以它们的组合方式出现。

简单点说,当系统物理内存吃紧时,Linux 系统会将内存中不常访问的数据保存到 swap 上,这样系统就有更多的物理内存为其他进程服务,而当系统需要访问 swap 上存储的内容时,系统会再将 swap 上的数据加载到内存中,这就是我们常说的 swap out 和 swap in 了。


交换分区的作用
swap 空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。

那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到swap空间中,等到那些程序要运行时,再从swap中恢复保存的数据到内存中。

这样,系统总是在物理内存不够时,才进行swap交换。

需要说明一点,并不是所有从物理内存中交换出来的数据都会被放到swap中(如果这样的话,swap就会不堪重负),有相当一部分数据被直接交换到文件系统。

例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少要打开一个文件,那就是运行程序本身),当需要将这些程序的内存空间交换出去时,就没有必要将文件部分的数据放到 swap空间中了,而可以直接将其放到文件里去。

如果是读文件操作,那么内存数据被直接释放,不需要交换出来,因为下次需要时,可直接从文件系统恢复;

如果是写文件,只需要将变化的数据保存到文件中,以便恢复。

但是那些用malloc和new函数生成的对象的数据则不同,它们需要swap空间,因为它们在文件系统中没有相应的“储备”文件,因此被称作“匿名”(Anonymous)内存数据。

这类数据还包括堆栈中的一些状态和变量数据等。所以说,swap空间是“匿名”数据的交换空间。

一般情况下,交换分区的大小应当相当于计算机内存的两倍,但不能超过2048MB(2GB)。
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml23368/wps1.jpg

建立方法
用户可以在任何 Linux 操作系统的安装过程中或者是其它必要的时候创建交换空间。

如果你在安装 Linux 的时候忘记了创建或是你想要再增加交换分区的空间,你随时都可以再创建或增加。在装完 Linux 系统之后,建立swap分区有两种方法。

1. 新建磁盘分区作为 swap 分区2. 用文件作为 swap 分区

下面介绍下这两种方法(都必须用 root 权限,操作过程应该小心谨慎。)

01 建磁盘分区作为 swap 分区

1.以root身份进入控制台(登录系统),输入# swapoff -a #停止所有的swap分区

2. 用fdisk命令(例:# fdisk /dev/sdb)对磁盘进行分区,添加swap分区,新建分区,在fdisk中用“t”命令将新添的分区id改为82(Linux swap类型),最后用w将操作实际写入硬盘(没用w之前的操作是无效的)

使用fdisk创建交换分区命令:
fdisk /dev/sda # 创建分区
n # 新建分区
(e # 创建扩展分区)
(p # 创建主分区)
(t # 改变分区类型)
p # 查看分区
w # 将信息写入磁盘)

3. # mkswap /dev/sdb2 #格式化swap分区,这里的sdb2要看您加完后p命令显示的实际分区设备名

4. # swapon /dev/sdb2 #启动新的swap分区

5. 为了让系统启动时能自动启用这个交换分区,可以编辑/etc/fstab,加入下面一行

/dev/sdb2 swap swap defaults 0 0

02 用文件作为 swap 分区

1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。
# dd if=/dev/zero of=/root/swapfile bs=1M count=1024

2.格式化为交换分区文件:
# mkswap /root/swapfile #建立swap的文件系统

3.启用交换分区文件:
# swapon /root/swapfile #启用swap文件

4.使系统开机时自启用,在文件/etc/fstab中添加一行:
/root/swapfile swap swap defaults 0 0

文章来源:本篇文章综合网络,因觉优质,特此分享,侵删。


每天通过一位IE,每两位IE,一位在思博群里有一群一起备考的战友哦
回贴可领取实验手册噢**** Hidden Message *****

进入全国网络工程师交流群 ,请扫描下方二维码↓↓↓
群里有行业大咖、实战分享、技术交流、技术咨询、企业内推等机会
若群满,请添加老杨微信(spotoa),邀你进群



页: [1]
查看完整版本: 【SPOTO思博网络】【网工入门干货】运维基础—Linux交换分区