近期编译AOSP(android 10.0)是总是遇到内存溢出,查了半天,无果。猜测增加下swap空间大小是否能解决,随即尝试下,果然是如此。
当然,还有其他作法,比如直接增加主机的内存(硬件方案)。
我的系统是Ubuntu 18.04。
Linux下swap空间大小通常在安装系统时设置swap分区时预设的,不过系统提供了添加或改动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
dd if=/dev/zero of=swapfile bs=1M count=1024
其中bs
是每块的大小,count
是块的数量;bs*count
,就是swap文件的大小:这里1M*1024=1G。可以根据需要自行调整。
此外,swapfile
是swap文件的路径,可以根据需求修改。
mkswap swapfile
这里的路径和之前的路径要对应起来。
swapon swapfile
修改/etc/fstab
这个文件,添加或者修改这一行:
swapfile swap swap defaults 0 0
注意,路径还是要对应,而且必须是全路径。最后两个是零,不是大写字母O。
此项不是必须的。如果不修改开机启动配置,重启之后的swap空间会重置,之前配置丢失。
这个是Linode的默认做法,这里也介绍一下。此方法与swap文件类似,只是使用了一个独立分区,而不是文件。
/dev/sdb2
)mkswap /dev/sdb2
swapon /dev/sdb2
/etc/fstab
添加到开启启动项:/dev/sdb2 swap swap defaults 0 0
本文简单介绍了在Linux如何实现swap空间的增大,主要使用了swapon/swapoff/free等命令,仅供后续参考。
原文:https://www.cnblogs.com/tocy/p/linux-swap-cmd-summary.html