交换分区概念、创建交换分区

【导读:数据是二十一世纪的石油,蕴含巨大价值,这是·情报通·大数据技术系列第[107]篇文章,欢迎阅读收藏】

1 基本概念

Linux交换分区即是Linux的SWAP分区,SWAP就是Linux下的虚拟内存分区。Swap 空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。

需要说明一点,并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果这样的话,Swap就会不堪重负),有相当一部分数据被直接交换到文件系统。例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少要打开一个文件,那就是运行程序本身),当需要将这些程序的内存空间交换出去时,就没有必要将文件部分的数据放到 Swap空间中了,而可以直接将其放到文件里去。如果是读文件操作,那么内存数据被直接释放,不需要交换出来,因为下次需要时,可直接从文件系统恢复;如果是写文件,只需要将变化的数据保存到文件中,以便恢复。但是那些用malloc和new函数生成的对象的数据则不同,它们需要Swap空间,因为它们在文件系统中没有相应的“储备”文件,因此被称作“匿名”(Anonymous)内存数据。这类数据还包括堆栈中的一些状态和变量数据等。所以说,Swap 空间是“匿名”数据的交换空间。

一般情况下,交换分区的大小应当相当于计算机内存的两倍,但不能超过2048MB(2GB)。

2 术语解释

Linux 交换分区 :就是Linux的swap 分区 ,SWAP就是Linux下的 虚拟内存 分区。

3 详细说明

用户可以在任何 Linux 操作系统的安装过程中或者是其它必要的时候创建交换空间。如果你在安装 Linux 的时候忘记了创建或是你想要再增加交换分区的空间,你随时都可以再创建或增加。在装完 Linux 系统之后,建立 Swap 分区有两种方法。

1. 新建磁盘分区作为 swap 分区

2. 用文件作为 swap 分区

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

3.1 建磁盘分区作为 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

3.2 用文件作为 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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200326A007B900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券