zoukankan      html  css  js  c++  java
  • 虚拟机无法分配内存 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
      

        

  • 相关阅读:
    10.28
    10.29
    11.05周四
    数据库增删改查
    11.03Tuesday
    11.10
    连接数据库
    10.30
    11.04周三
    10.27
  • 原文地址:https://www.cnblogs.com/ettie999/p/8143712.html
Copyright © 2011-2022 走看看