虚拟机无法分配内存 virtual memory exhausted: Cannot allocate memory

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
    

      

原文地址:https://www.cnblogs.com/ettie999/p/8143712.html

时间: 2024-10-28 04:54:25

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

virtual memory exhausted: Cannot allocate memory

问题描述: 购买的Linux服务器,Linux服务器的内存为512MB. 在编译PHP的时候会提示:virtual memory exhausted: Cannot allocate memory,编译失败. 解决方法: 发生该问题的原因是服务器的内存不够,从而导致编译失败. 而购买的Linux服务器,未给你分配虚拟内存,所以可以通过自行增加虚拟内存的方法予以解决 [[email protected] ~]# free -m total used free shared buffers cach

virtual memory exhausted: Cannot allocate memory 解决方法

在阿里云买了个云服务器,内存1G.编译kudu时出现下面的错误: virtual memory exhausted: Cannot allocate memory 问题原因:由于物理内存本身很小,且阿里云服务器并没有分配swap空间,当物理内存不够用时, 物理内存中暂时不用的内容没地方转存. 解决方法:手动分配一个swap空间 dd if=/dev/zero of=/swap bs=1024 count=1M    #创建一个大小为1G的文件/swap             mkswap /s

编译时:virtual memory exhausted: Cannot allocate memory

一.问题 当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩展内存的方法. 二.解决方法 在执行free -m的是时候提示Cannot allocate memory: (swap文件可以放在自己喜欢的位置如/var/swap) [html] view plain copy [[email protected] byrd]# free -m total   

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

原文链接:http://blog.csdn.net/taiyang1987912/article/details/41695895 一.问题 当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序可能会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩展内存的方法解决. 二.解决方法 在执行free -m的时候提示Cannot allocate memory: (swap文件可以放在自己喜欢的位置如/var/sw

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

一.问题 当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩展内存的方法. 二.解决方法 在执行free -m的是时候提示Cannot allocate memory: (swap文件可以放在自己喜欢的位置如/var/swap) 1 [[email protected] byrd]# free -m 2 total used free shared buff

php编译 :virtual memory exhausted: Cannot allocate memory

有时候用vps建站时需要通过编译的方式来安装主机控制面板.对于大内存的VPS来说一般问题不大,但是对于小内存,比如512MB内存的VPS来说,很有可能会出现问题,因为编译过程是一个内存消耗较大的动作.本人近期就遇到一个这样的问题:在512MB内存centos操作系统的VPS上编译安装某国内主机控制面板,在编译安装php时日志中有如下错误记录:virtual memory exhausted: Cannot allocate memorymake: *** [ext/fileinfo/libmag

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

有时候用vps建站时需要通过编译的方式来安装主机控制面板.对于大内存的VPS来说一般问题不大,但是对于小内存,比如512MB内存的VPS来说,很有可能会出现问题,因为编译过程是一个内存消耗较大的动作.本人近期就遇到一个这样的问题:在512MB内存centos操作系统的VPS上编译安装某国内主机控制面板,在编译安装php时日志中有如下错误记录:virtual memory exhausted: Cannot allocate memorymake: *** [ext/fileinfo/libmag

Centos安装php提示virtual memory exhausted: Cannot allocate memory

由于内存不够,需要在php配置的时候./configure最后添加上 --disable-fileinfo >>./configure --prefix= ...........   --disable-fileinfo >> make >> .....

解决:virtual memory exhausted: Cannot allocate memor

问题描述: 购买的Linux服务器,Linux服务器的内存为512MB. 在编译PHP的时候会提示:virtual memory exhausted: Cannot allocate memory,编译失败. 解决方法: 发生该问题的原因是服务器的内存不够,从而导致编译失败. 而购买的Linux服务器,未给你分配虚拟内存,所以可以通过自行增加虚拟内存的方法予以解决: 1 2 3 4 dd if = / dev / zero of = / swap bs = 1024 count = 1M mks