CentOS更新软件包提示cannot allocate memory错误与解决

cera cera

 

最近一台VPS在使用yum命令更新系统软件包的时候,出现Cannot allocate memory类似的错误,看来是内存不足了。这台VPS内存是512MB,安装了CentOS7的系统。出现类似错误,应该是系统内存不足了。有一种解决办法,就是增加磁盘交换分区,拿磁盘空间来模拟内存,这是一种牺牲速度和效率的办法,毕竟磁盘读写速度比起内存差了N条街。不过,用这种办法临时解决一些问题还是挺有用的。

VPS之前并没有加载SWAP分区,需要我们临时生成一个文件,并挂载为SWAP分区:

1
2
3
dd if=/dev/zero of=/etc/swapfile bs=1024 count=500000
mkswap /etc/swapfile
swapon /etc/swapfile

三步操作完成之后,再看一下当前SWAP分区是否被挂载正常:

1
2
3
4
[root@host home]# free -m
              total        used        free      shared  buff/cache   available
Mem:            502          88          13           4         400         376
Swap:           488           0         488

我们几乎增加了一个与内存容量想当的交换分区,然后再次运行yum update命令,成功更新所有系统软件包。

后面如果想关掉交换分区,还可以这么干:

1
swapoff /etc/swapfile

或者直接

1
swapoff -a

cera cloudiplc tengxunyun

相关推荐