起因及背景

近期编译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等命令,仅供后续参考。

参考资料

linux增加swap空间的方法小结的更多相关文章

  1. 增加SWAP空间的方法

    增加swap空间的方法 背景:安装oracle数据库需要,需要设置swap空间为16G,当前swap空间只有4G,需要增加12Gswap空间. 1.创建一个空文件 # dd if=/dev/zero ...

  2. Linux增加swap分区的方法

    在装完Linux系统之后,建立Swap分区有两种方法. 1.新建磁盘分区作为swap分区2.用文件作为swap分区 (操作更简单,我更常用) 一.新建磁盘分区作为swap分区 1. # swapoff ...

  3. Linux增加swap空间

    1.添加交换文件并设置其大小为12G,使用如下命令 # dd if=/dev/zero of=/home/swapfile bs=1024 count=12288000 12288000+0 reco ...

  4. Linux增加swap空间大小解决编译错误collect2:ld terminated with signal 9(或11)

    编译llvm的时候:collect2:ld terminated with signal 9(或11) 1 Creating a file for 1024 MB size you want: We ...

  5. Red Hat linux 如何增加swap空间

    按步骤介绍 Red Hat linux 如何增加swap空间 方法/步骤 第一步:确保系统中有足够的空间来用做swap交换空间,我使用的是KVM,准备在一个独立的文件系统中添加一个swap交换文件,在 ...

  6. Linux学习(十四)磁盘格式化、磁盘挂载、手动增加swap空间

    一.磁盘格式化 分好去的磁盘需要格式化之后才可以使用.磁盘分区一般用mke2fs命令或者mkfs.filesystemtype.这个filesystemtype分为ext4,ext3,xfs等等.xf ...

  7. 树莓派进阶之路 (027) - 在Linux中增加swap空间

    原贴地址:http://blog.csdn.net/chinalinuxzend/article/details/1759593  在Linux中增加swap空间 在安装Linux的时候,不知道swa ...

  8. Linux临时增加swap空间

    linux临时增加swap空间:step 1: #dd if=/dev/zero of=/home/swap bs=1024 count=500000 注释:of=/home/swap,放置swap的 ...

  9. 在Linux中增加swap空间

    转自: http://blog.csdn.net/chinalinuxzend/article/details/1759593 在Linux中增加swap空间 在安装Linux的时候,不知道swap空 ...

随机推荐

  1. MySQL实战45讲学习笔记:第三十讲

    一.复习一下加锁规则 在第20和21篇文章中,我和你介绍了 InnoDB 的间隙锁.next-key lock,以及加锁规则.在这两篇文章的评论区,出现了很多高质量的留言.我觉得通过分析这些问题,可以 ...

  2. [LeetCode] 718. Maximum Length of Repeated Subarray 最长的重复子数组

    Given two integer arrays A and B, return the maximum length of an subarray that appears in both arra ...

  3. [LeetCode] 378. Kth Smallest Element in a Sorted Matrix 有序矩阵中第K小的元素

    Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth ...

  4. Oracle--DBV命令行工具用法详解及坏块修复

    一,介绍 DBV(DBVERIFY)是Oracle提供的一个命令行工具,它可以对数据文件物理和逻辑两种一致性检查.但是这个工具不会检查索引记录和数据记录的匹配关系,这种检查必须使用analyze va ...

  5. xunit测试无法找到testhost或没有可用测试的问题解决方法

    xunit进行测试,需要安装如下几个包: Microsoft.TestPlatform.TestHost Microsoft.NET.Test.Sdk xunit.runner.visualstudi ...

  6. C# HTTP系列5 HttpWebResponse.StatusCode属性

    系列目录     [已更新最新开发文章,点击查看详细] HttpWebResponse.StatusCode 属性获取响应的状态.对应 HttpStatusCode 枚举值之一. HttpStatus ...

  7. C#自定义特性的使用

    特性类的使用过程: 第一步:定义一个特性类,定义一些成员来包含验证时需要的数据:第二步:创建特性类实例:创建一个特性类的实例,里面包含着验证某一个属性或者字段需要的数据.将该实例关联到某个属性上面.第 ...

  8. 实验二 Java基础(数据/表达式、判定/循环语句)

    实验二 (一)实验内容 编写简单的计算器,完成加减乘除模运算. 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. 编写测试代码,测试验证. ...

  9. Intellij-Cannot download Sources解决方法

    当你点击Dowload Sources的时候它会报一个错误 提示你不能下载源代码,这个时候你可以打开下方的命令窗口 然后 进入到项目根路径后  使用mvn dependency:resolve -Dc ...

  10. 使用 go modules 包管理工具(一)

    概述 我想实现一个开箱即用的 API 框架的轮子,这个轮子是基于 Gin 基础上开发的. 为什么是开箱即用,它会集成哪些功能? 以上功能点,都是常用的,后期可能还会增加. 废话不多说,咱们开始吧. 创 ...