尝试“yum -y update”无法分配内存

尝试“yum -y update”无法分配内存

我使用的是 512MB RAM 的 VPS。尝试yum -y update后,我得到了以下结果:

[root@cs09-prod ~]# yum -y update
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.sesp.northwestern.edu
 * epel: mirror.steadfast.net
 * extras: linux.cc.lehigh.edu
 * updates: mirror.team-cymru.org
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-9 will be updated
---> Package epel-release.noarch 0:7-11 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                Arch             Version           Repository      Size
================================================================================
Updating:
 epel-release           noarch           7-11              epel            15 k

Transaction Summary
================================================================================
Upgrade  1 Package

Total download size: 15 k
Downloading packages:
Failed to download prestodelta for repository epel: [Errno 5] [Errno 12] Cannot allocate memory


Error downloading packages:
  epel-release-7-11.noarch: [Errno 5] [Errno 12] Cannot allocate memory

[root@cs09-prod ~]#

除了购买具有更多内存的 VPS 之外,还有其他方法可以解决这个问题吗?

答案1

您的 VPS 没有足够的可用内存。您可以通过运行以下命令查看内存量:

free -gh

显示g可用内存量(以 GB 为单位),并h以人性化格式显示。mh如果您想以 MB 为单位查看,可以使用。

为了使其yum正常工作,您需要停止服务以释放内存。您可以使用该ps命令查看哪些进程使用了​​多少内存。

答案2

问题

Yum 无法分配内存

回答:

创建一个交换文件作为内存使用。

我知道这是一个老话题,但接受的答案并没有回答真正的问题:该怎么办?当你只有 0.5G 内存时,你实际上无法结束足够的进程来处理yum update廉价配置的系统。

您需要分配磁盘空间作为交换文件的内存。在 Centos 中,可以按照教程进行操作这里

这将创建 4G 内存,这可能太过分。只需count=4096将 4096 更改为您想要使用的 MB 数即可。另请注意,性能不会很好,但它可以帮助您解决当某个进程预计使用的 RAM 超过可用 RAM 时(直到达到您从磁盘空间中提供的数量)的麻烦。

sudo dd if=/dev/zero of=/swapfile count=4096 bs=1MiB
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'

相关内容