最近一台VPS在使用yum命令更新系统软件包的时候,出现Cannot allocate memory类似的错误,看来是内存不足了。这台VPS内存是512MB,安装了CentOS7的系统。出现类似错误,应该是系统内存不足了。有一种解决办法,就是增加磁盘交换分区,拿磁盘空间来模拟内存,这是一种牺牲速度和效率的办法,毕竟磁盘读写速度比起内存差了N条街。不过,用这种办法临时解决一些问题还是挺有用的。
VPS之前并没有加载SWAP分区,需要我们临时生成一个文件,并挂载为SWAP分区:
1 | dd if=/dev/zero of=/etc/swapfile bs=1024 count=500000 |
三步操作完成之后,再看一下当前SWAP分区是否被挂载正常:
1 | [root@host home]# free -m |
我们几乎增加了一个与内存容量想当的交换分区,然后再次运行yum update命令,成功更新所有系统软件包。
后面如果想关掉交换分区,还可以这么干:
1 | swapoff /etc/swapfile |
或者直接
1 | swapoff -a |