虚拟机内存问题:virtual memory exhausted: Cannot allocate memory

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

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

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

--设置一个swap分区

--创建一个虚拟内存的文件

1、 使用物理分区构建swap

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

(1)分区

先用fdisk在磁盘中分个区出来作为swap。然后设置一下system ID(Linux的fdisk会默认将分区ID设为Linux的文件系统)。

(2)格式化

利用“mkswap 设备文件名”新建swap格式分区(格式化该分区为swap格式)。

(3)使用

swapon 设备文件名”将此swap设备启动。

(4)查看

free”查看内存使用情况。


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

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启动

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)