1.内存交换空间(swap)的构建

安装Linux时一定需要的两个分区:根目录和swap(内存交换空间)。

swap的功能:在应付物理内存不足的情况下所造成的内存扩展记录的功能。

物理内存不足的时候,swap使用硬盘来暂时放置内存中的信息。

  • 设置一个swap分区
  • 创建一个虚拟内存的文件

1.1 使用物理分区构建swap

针对没有建立swap分区的情况,基本用不到。在已建立swap分区情况下,直接跳到第二部分(创建虚拟内存文件)。

  1. 分区
    先用fdisk在磁盘中分个区出来作为swap。然后设置一下system ID(Linux的fdisk会默认将分区ID设为Linux的文件系统)。
  2. 格式化
    利用“mkswap 设备文件名”新建swap格式分区(格式化该分区为swap格式)。
  3. 使用
    swapon 设备文件名”将此swap设备启动。
  4. 查看
    free”查看内存使用情况。

1.2 使用文件构建swap

  • 使用dd命令在/tmp下新增一个128MB的文件

    sudo -s     #进入root用户模式
    dd if=/dev/zero of=/swap bs=1024 count=1M #创建一个大小为1G的文件/swap
    ll -h /swap #可以看到已为/swap分配了1G
  • 使用mkswap将/tmp/swap文件格式化为swap的文件格式
    mkswap /swap
  • 使用swapon将/tmp/swap启动

    free          #查看
    swapon /swap #启动/swap
    free #查看
    swapon -s #查看
    echo "/swap/swap swap swap defaults 0 0" >> /etc/fstab #设置成永久生效

    虽然现在已经生效,但是等下次虚拟机重启之后,该swap虚拟磁盘会失效。所以要加上最后一步。

  • 虚拟机重启后若仍想使用,用root权限打开/swap即可使用。

    sudo -s
    swapon /swap
  • 使用swapoff关闭swap file

    swapoff /swap
    free

      

虚拟机无法分配内存 virtual memory exhausted: Cannot allocate memory的更多相关文章

  1. 编译时:virtual memory exhausted: Cannot allocate memory

    一.问题 当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩 ...

  2. 编译时:virtual memory exhausted: Cannot allocate memory,常见于VPS

    原文链接:http://blog.csdn.net/taiyang1987912/article/details/41695895 一.问题 当安装虚拟机时系统时没有设置swap大小或设置内存太小,编 ...

  3. virtual memory exhausted: Cannot allocate memory 解决方法

    在阿里云买了个云服务器,内存1G.编译kudu时出现下面的错误: virtual memory exhausted: Cannot allocate memory 问题原因:由于物理内存本身很小,且阿 ...

  4. 编译时:virtual memory exhausted: Cannot allocate memory(转)

    一.问题 当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩 ...

  5. 阿里云ECS云服务器编译安装PHP遇到virtual memory exhausted: Cannot allocate memory

    阿里云编译安装php时遇到virtual memory exhausted: Cannot allocate memory 买了个服务器, 1G 的内存阿里云服务器,编译东西按说应该够了,安装相关的内 ...

  6. php编译 :virtual memory exhausted: Cannot allocate memory

    有时候用vps建站时需要通过编译的方式来安装主机控制面板.对于大内存的VPS来说一般问题不大,但是对于小内存,比如512MB内存的VPS来说,很有可能会出现问题,因为编译过程是一个内存消耗较大的动作. ...

  7. 编译安装php时遇到virtual memory exhausted: Cannot allocate memory

    有时候用vps建站时需要通过编译的方式来安装主机控制面板.对于大内存的VPS来说一般问题不大,但是对于小内存,比如512MB内存的godaddy VPS来说,很有可能会出现问题,因为编译过程是一个内存 ...

  8. 树莓派编译程序时报错:virtual memory exhausted: Cannot allocate memory

    一.原因分析: 树莓派内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩展内存的方法. 二.解决方法: 安 ...

  9. win7 mount到Linux下无法分配内存的问题(Cannot allocate memory)

    如题,我在win7系统下共享目录,mount到linux下,进行编译或者某些操作,出现Cannot allocate memory提示. 修改以下两个键值,然后重启server服务,可以解决这个问题: ...

随机推荐

  1. 配置tomcat,访问端口改为80

    首先:找到tomcat的的config文件夹下的server.xml文件: 编辑server.xml 保存server.xml文件,重启tomcat服务器,即可. 亲测好使.

  2. [haoi2014]穿越封锁线

    这题需要注意的一点是射线法需要考虑边界,而且题目对边界的限制极为严格. dcmp(v[i%n].x-x)<=0&&dcmp(v[(i+1)%n].x-x)>0 dcmp(v ...

  3. codeforces776E

    传送门 这题看着很唬人,但实际上是道水题... f[n]通过打表或证明,可以发现就是欧拉函数,g[n]恒等于n,所以题目的意思就是让你求n的k次欧拉函数. 可以发现实际上k次欧拉函数,n的数值减小得很 ...

  4. Zygote进程介绍【转】

    本文转载自:http://blog.csdn.net/yangwen123/article/details/17258023 Zygote进程介绍   在Android系统中,存在不同的服务,这些服务 ...

  5. linux下mysql开启二进制日志

    mysql的查询日志,慢查询日志,错误日志,网上的设置方法是正确的.但在二进制日志上设置有问题.正确的设置方法如下, 在/etc/my.cnf文件中[mysqld]下加上: server-id = 1 ...

  6. fiddler_test

    fiddler学习第二天 啦啦啦 拉拉呀

  7. (QA-LSTM)自然语言处理:智能问答 IBM 保险QA QA-LSTM 实现笔记.md

    train集: 包含若干条与保险相关的问题,每一组问题对为一行,示意如下: 可分为四项,第三项为问题,第四项为答案: 1.build_vocab 统计训练集中出现的词,返回结果如下(一个包含3085个 ...

  8. ZIP伪加密(deprecated)

    ZIP伪加密 经过伪加密的apk,改成zip格式打开会发现里面的文件都经过了加密. APK实际上是Zip压缩文件,但是Android系统在解析APK文件时,和传统的解压压缩软件在解析Zip文件时存在差 ...

  9. ubuntu16.04 跑Apollo Demo

    1.安装docker(参考网址:https://docs.docker.com/install/linux/docker-ce/ubuntu/) Uninstall old versions Olde ...

  10. bzoj2962

    线段树+卷积 这个东西直接算不太好,但是合并两段结果却很方便,假设c[i]表示选i个数乘积的和,那么$a[i]=\sum_{j=0}^{i}{b[j]*c[i-j]}$ 线段树维护即可 #includ ...