在编译QGC时显示内存不够,于是发现可以使用虚拟磁盘做一个交换分区,具体的概念如下:
swap space 是磁盘上的一块区域,可以是一个分区,也可以是一个文件。所以具体的实现可以是 swap 分区也可以是 swap 文件。当系统物理内存吃紧时,Linux 会将内存中不常访问的数据保存到 swap 上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问 swap 上存储的内容时,再将 swap 上的数据加载到内存中,这就是常说的换出和换入。交换空间可以在一定程度上缓解内存不足的情况,但是它需要读写磁盘数据,所以性能不是很高。
这是推荐的交换分区的代销
进入正题:接下来会用两种方法来说明
一、使用新建一个磁盘作为一个虚拟内存的交换空间
1. 先新建一个磁盘,关闭虚拟机,然后在VM上设置,添加一个硬盘,我给的大小是5G
2. 接下来,在linux中输入:fdisk -l可以查看到有新的硬盘sdb
3. 用fdisk /dev/sdb创建一个主分区作为交换分区,并赋予ID为swap---82,具体方法在上一个文章
4. 格式化文件系统: mkswap /dev/sdb1(具体的分区名称)
5. 这个时候看 free -m 还是Swap的空间,这个时候要启动 输入: swapon /dev/sdb1 在用:free -m发现有大小了,成功了
6.在/etc/fstab中设置开机自启动, 添加: /dev/sdb1 swap swap defaults 0 0
二、使用文件构造swap
1. 可以创建一个目录 mkdir /opt/images,自己定义的一个路径
2. 使用:dd if=/dev/zero of=/opt/images/swap bs=1024 count=4096000(这里我创建的是4G的内存)
3. 格式化文件系统: mkswap/opt/images/swap
4. 启用交换分区: swapon/opt/images/swap
5. 要想自启动,也是在/etc/fstab下添加:/opt/images/swap swap swap defaults 0 0
6. 如果不想用了,怕影响性能想关闭可以:#swapoff swap
#rm-f/opt/images/swap
注意这里所使用到的空间是用本地磁盘空间