linux增加swap空间的方法小结

起因及背景

近期编译AOSP(android 10.0)是总是遇到内存溢出,查了半天,无果。猜测增加下swap空间大小是否能解决,随即尝试下,果然是如此。
当然,还有其他作法,比如直接增加主机的内存(硬件方案)。

我的系统是Ubuntu 18.04。

Linux下swap空间大小通常在安装系统时设置swap分区时预设的,不过系统提供了添加或改动swap分区的命令。

涉及的命令

  • free:查看内存状态命令,可以显示memory、swap、buffer/cache等的大小及使用状况;
  • dd:读取,转换并输出数据命令;
  • mkswap:设置交换区
  • swapon:启用交换区,相当于mount
  • swapoff:关闭交换区,相当于umount

查看swap空间大小

通过查看内存状态命令free可以获得swap空间大小,正常状况下可使用以下三个命令之一:

free
free -m
free -h

比如下面是free -h在我主机上的输出:

$ free -h
                     total        used        free      shared  buff/cache   available
Mem:            13G        3.5G        2.7G        367M        7.4G        9.4G
Swap:           11G        126M         11G

关闭所有交换分区

命令如下:

swapoff -a

通过swap分区文件增加swap空间

1. 创建swap分区的文件

dd if=/dev/zero of=swapfile bs=1M count=1024


其中bs是每块的大小,count是块的数量;bs*count,就是swap文件的大小:这里1M*1024=1G。可以根据需要自行调整。

此外,swapfile是swap文件的路径,可以根据需求修改。

2. 格式化交换分区文件

mkswap swapfile


这里的路径和之前的路径要对应起来。

3. 启用swap分区文件

swapon swapfile

4. 添加开机启动

修改/etc/fstab这个文件,添加或者修改这一行:
swapfile swap swap defaults 0 0
注意,路径还是要对应,而且必须是全路径。最后两个是零,不是大写字母O。
此项不是必须的。如果不修改开机启动配置,重启之后的swap空间会重置,之前配置丢失。

通过新建分区来扩展原有swap空间

这个是Linode的默认做法,这里也介绍一下。此方法与swap文件类似,只是使用了一个独立分区,而不是文件。

  1. 使用fdisk创建交换分区(假设是 /dev/sdb2
  2. 使用mkswap设置交换分区:
    mkswap /dev/sdb2
  3. 启用交换分区
    swapon /dev/sdb2
  4. 修改/etc/fstab添加到开启启动项:
    /dev/sdb2 swap swap defaults 0 0

小结

本文简单介绍了在Linux如何实现swap空间的增大,主要使用了swapon/swapoff/free等命令,仅供后续参考。

### 回答1: 要增加Linuxswap空间,可以按照以下步骤操作: 1. 查看当前系统的swap空间大小和使用情况,可以使用命令:`free -m`。 2. 创建一个新的swap文件,可以使用命令:`sudo fallocate -l [size] /swapfile`,其中[size]为需要创建的swap文件大小,单位为MB。 3. 设置swap文件的权限,可以使用命令:`sudo chmod 600 /swapfile`。 4. 将swap文件格式化为swap分区,可以使用命令:`sudo mkswap /swapfile`。 5. 启用swap分区,可以使用命令:`sudo swapon /swapfile`。 6. 验证swap分区是否已经启用,可以使用命令:`sudo swapon -s`。 7. 将swap分区设置为开机自动启用,可以编辑`/etc/fstab`文件,在文件末尾添加一行:`/swapfile swap swap defaults `。 完成以上步骤后,就可以成功增加Linuxswap空间了。 ### 回答2: Swap 空间Linux 中是为了增加内存容量而存在的一种虚拟内存。在物理内存不足的情况下,交换空间可以用作扩展内存的一部分,让系统能够继续工作。因此,当 Linux 系统中的物理内存不足时,增加 Swap 空间可以提高系统的稳定性和可靠性。本文将详细介绍如何在 Linux 系统中增加 Swap 空间。 一、查看系统当前的 Swap 空间 在开始之前,必须要先查看一下系统当前的 Swap 空间大小。我们可以用下面的命令来查看: ``` free -h ``` 其中,“-h”参数可以使输出结果以较为人性化的方式显示。此命令可以输出系统中的物理内存和 Swap 空间的使用情况。其中,Swap 一栏显示的是当前可用的 Swap 大小。如果 Swap 空间的可用空间为 0,则说明系统需要更多的 Swap 空间。 二、检查硬盘空间 在创建 Swap 空间之前,需要先检查硬盘空间,以确保有足够的空间来创建 Swap 分区。可以使用下面的命令来检查硬盘空间: ``` df -h ``` 其中,“-h”参数的作用同上。此命令输出的是文件系统的磁盘空间使用情况。 三、创建 Swap 分区 接下来就是创建 Swap 分区了。本文介绍两种方法: 1. 创建 Swap 文件 可以通过创建 Swap 文件来创建 Swap 空间。具体方法如下: ``` sudo fallocate -l <size> /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile ``` 其中,“<size>”表示需要创建的 Swap 文件的大小,可以设置为任意值,但一般不小于物理内存的大小。第二条命令将新创建的 Swap 文件的权限设置为 600,以避免安全问题。第三条命令将新生成的 Swap 分区格式化为 Swap 空间。最后一条命令启用新的 Swap 空间。 2. 创建 Swap 分区 可以通过分区工具创建一个新的 Swap 分区。具体方法如下: ``` sudo fdisk /dev/sda ``` 其中,“/dev/sda”表示需要分区的设备。使用 fdisk 工具,可以创建一个新的分区,将其类型设置为 "82"(Linux Swap)。 接下来,我们需要使用 mkswap 命令对新分区进行格式化: ``` sudo mkswap /dev/sda1 ``` 其中,“/dev/sda1”表示新创建的分区的设备名称。该命令将新分区格式化为 Swap 空间。 最后,我们需要使用 swapon 命令来启用这个新的 Swap 空间: ``` sudo swapon /dev/sda1 ``` 四、永久性激活 Swap 空间 在重启系统后,系统会忽略先前创建的 Swap 空间。因此,我们需要在配置文件中添加新的 Swap 分区信息,以确保系统重启后仍能使用它。 1. 对于创建 Swap 分区的方法: 需要编辑 /etc/fstab 文件: ``` sudo nano /etc/fstab ``` 在文件的末尾添加一行类似于下面的代码: ``` /dev/sda1 swap swap defaults 0 0 ``` 其中,“/dev/sda1”表示新创建的分区的设备名,后面的 “swap swap defaults” 是 Swap 分区的参数。最后两个数字是文件系统检查的顺序,一般填写 0 即可。 保存文件,然后运行下面的命令确保新的 Swap 分区已正确添加到 fstab 文件中: ``` sudo mount -a ``` 2. 对于创建 Swap 文件的方法: 需要编辑 /etc/fstab 文件: ``` sudo nano /etc/fstab ``` 在文件的末尾添加一行类似于下面的代码: ``` /swapfile none swap sw 0 0 ``` 其中,“/swapfile”表示新创建的 Swap 文件的路径,后面的 “none swap sw” 是 Swap 文件的参数。最后两个数字是文件系统检查的顺序,一般填写 0 即可。 保存文件,然后运行下面的命令确保新的 Swap 文件已正确添加到 fstab 文件中: ``` sudo mount -a ``` 至此,我们已经完成了在 Linux 系统中增加 Swap 空间的详细过程。 ### 回答3: Swap空间Linux操作系统中一种虚拟内存的实现方式,它可以将运行中进程的数据暂时写入硬盘,从而释放出物理内存。然而,在某些情况下,Linux系统可能会出现物理内存不足的情况,需要通过增加Swap空间来解决这个问题。下面我们来看一下如何增加Swap空间。 第一步:了解系统当前的Swap状况。通过以下命令可以查看系统当前的Swap大小和使用情况。 ```shell $ swapon -s ``` 第二步:创建Swap文件。可以通过以下命令创建一个大小为8GB的Swap文件。 ```shell $ sudo fallocate -l 8G /swapfile ``` 第三步:将文件格式化为Swap文件系统。 ```shell $ sudo mkswap /swapfile ``` 第四步:启用Swap文件。 ```shell $ sudo swapon /swapfile ``` 第五步:确认Swap文件已启用。 ```shell $ swapon -s ``` 第六步:设置Swap文件在系统启动时自动启用。将下面一行加入到/etc/fstab文件中。 ```shell /swapfile swap swap defaults 0 0 ``` 至此,已经成功增加Swap空间。需要注意的是,Swap空间的大小应该根据系统的实际需求进行调整。同时,Swap空间使用过多也会影响系统性能,因此应该尽量避免过度使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值