• 虚拟机无法分配内存 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
      

        

  • 相关阅读:
    HDU5643-King's Game
    KM算法详解+模板
    二分图最大匹配(匈牙利算法)
    二分图判断(交叉染色)
    能被2、3、4、5、6、7、8、9 等数整除的数的特征
    Codeforces Round #306 (Div. 2) ABCDE(构造)
    HDU5627--Clarke and MST (bfs+位运算)
    Educational Codeforces Round 82 (Rated for Div. 2)
    2020 CCPC Wannafly Winter Camp Day5
    Codeforces Round #618 (Div. 2)
  • 原文地址:https://www.cnblogs.com/ettie999/p/8143712.html
Copyright © 2020-2023  润新知