侧边栏
首页代码

AOSP源码编译—交换空间扩容

编译AOSP源码的时候会出现提示如下:
image
意思是需要16G左右的内存(实际上编译会超过16G),而我们之前安装Ubuntu的时候只分配了8G,编
译一定会失败!此时需要添加虚拟内存(swap交换空间)

Linux 的交换分区(swap),或者叫内存置换空间(swap space),是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。交换分区的作用是,当系统物理内存吃紧时,Linux 会将内存中不常访问的数据保存到 swap 上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问 swap 上存储的内容时,再将 swap 上的数据加载到内存中,也就是常说的 swap out 和 swap in。

我们安装的Ubuntu默认一般是2G左右的swap空间,(可以提供过 free -m 命令查看虚拟内存与交换空间大小)使用以下命令查看swap详情:

swapon -s

可以看到我们Ubuntu上的当前的swap是存放在根目录的swapfile文件。此时如果交换空间大小加上虚拟内存不足20G,则进行下面的操作扩大交换空间:

配置交换空间

停用交换文件

停用交换文件:(根据自己虚拟机来指定/swapfile 还是其他的挂载文件)

sudo swapoff /swapfile

删除文件

删除文件:

sudo rm /swapfile

创建Swap空间

删除后继续创建。

新建swap空间,以20G为例,创建文件:

sudo fallocate -l 20G /swapfile

这里我们是命名为“swapfile”,当然你也可以随意写。设置文件权限:

sudo chmod 600 /swapfile

挂载:

sudo mkswap /swapfile

激活启用:

sudo swapon /swapfile

可以通过free -m命令查看Swap空间

设置为永久Swap

接着把交换信息写入系统配置,不然Ubuntu重启后以上配置swap空间工作得重新做。
使用vim编辑器打开配置文件:

sudo vim /etc/fstab

如果提示vim找不到命令,使用以下命令安装vim,然后再次打开配置文件

sudo apt-get install vim

在最后一行插入(vim打开后按i进入编辑模式,移动光标到最后回车换行):

/swapfile swap swap defaults 0 0


编辑好之后按ESC键退出编辑模式,然后依次输入:wq(英文冒号+wq)保存退出,并重启即可。

交换空间未使用

系统只有当虚拟内存不足才会启动Swap,比如系统默认内存只有6000KB时才会启用交换空间,但是此时系统可能已经卡死,无法启动swap,所以需要更改设置。
终端输入命令:

sudo vim /etc/sysctl.conf

在最后面添加如下语句(按i进入编辑模式,光标移到最后,插入语句)

vm.min_free_kbytes=1500000 #大致1.5G

保存退出(按ESC退出编辑模式,输入:wq保存退出)然后重启开机。

以上配置的意思是,当系统内存不足1.5G时就启用交换空间,这是因为我分配给Ubuntu的内存为8G。而如果你虚拟机分配的内存是4G,那建议不要设置1.5G就启用交换空间,可以调小一些,比如调整为1G:

vm.min_free_kbytes=1000000
posted @ 2023-05-15 09:25  咸鱼Jay  阅读(651)  评论(0编辑  收藏  举报
页脚HTML代码