iTimothy

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

最近一台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
支持原创技术分享,据说打赏我的人,都找到了女朋友!