[ubuntu][cmake]vmware ubuntu 下创建交换空间(swap space)

[ubuntu][cmake]vmware ubuntu 下创建交换空间(swap space)



1. 问题背景

因为工作需要在 vmware-ubuntu 下编译 代码,但是由于公司电脑本身内存容量不大,只能分配 6GB 内存给虚拟机,这会导致在编译时出现 virtual memory exhausted: Cannot allocate memory 问题,与此同时,当前虚拟机没有分配交换空间(swap space),在网络上搜索了两个教程,可以通过添加虚拟空间解决内存耗尽的问题。

vmware 版本:15
ubuntu 版本:16.04
在这里插入图片描述


2. 交换空间理解

来源

Linux 的交换分区(swap),或者叫内存置换空间(swap space),是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。

交换分区的作用是,当系统物理内存吃紧时,Linux 会将内存中不常访问的数据保存到 swap 上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问 swap 上存储的内容时,再将 swap 上的数据加载到内存中,也就是常说的 swap out 和 swap in。


3. 操作步骤

1. 创建交换空间

  1. 查看系统是否配置了交换空间
    $ swapon --show
    
  2. 使用 fallocate 程序创建一个交换文件
    根据教程的建议,交换空间的大小是内存大小的两倍,因此分配 10GB 容量给交换空间
    $ sudo fallocate -l 10G /swapfile
    
  3. 查看交换空间文件是否创建
    $ ls -lh /swapfile
    
  • 步骤1记录
    在这里插入图片描述

2. 配置交换文件(swap file)

  1. 让交换文件只能被 root 访问

    $ sudo chmod 600 /swapfile
    
  2. 使交换文件生效,输出结果见步骤2记录

    $ sudo mkswap /swapfile
    
  3. 让系统开始使用创建交换文件

    $ sudo swapon /swapfile
    
  4. 查看系统是否配置了交换空间

    $ sudo swapon --show
    

    $ free -h
    
  • 步骤2记录
    在这里插入图片描述
    在这里插入图片描述

    注: 要执行 swapon /swapfile 命令

3. 使交换文件永久存在

上面创建的交换文件在重启系统(reboot)之后就会失效,如果需要此交换文件永久有效,需要将它写入 /etc/fstab 文件中

$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

添加前的 fstab
在这里插入图片描述
添加后的 fstab
在这里插入图片描述

4. 查看结果

创建交换空间后结果
在这里插入图片描述
重启后查看结果
在这里插入图片描述


&&. 参考

链接:How To Create or Resize Swap Space on Ubuntu 20.04 – 20.10 & 18.04 – 19.10
链接:Linux虚拟机增加内存后增加swap空间
链接:Linux上创建SWAP文件/分区
链接:Linux 创建交换(swap)分区

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值