`yum update` 的内存使用情况

Rai*_*les 5 memory linux centos yum

我正在更新一个稍微过时的服务器并yum update遇到内存问题。看来 yum 需要足够的可用 RAM 来下载每个包。

更新单个包不是问题,因为大多数单个包本身就适合内存。但是,不可能在一次操作中更新所有软件包,因为 yum 似乎首先同时将所有软件包下载到 RAM 中。这意味着前几十个包会下载,但在某些时候它们会停止下载,并且每个后续包都会出现内存错误,即使单个包非常小。即使停止所有服务后,总下载大小仍大于可用 RAM 量。

我的解决方案是手动检查并挑选出最大的软件包并首先更新它们。这让我可以让剩余的包总数小于可用 RAM 的数量。但必须有更好的方法。

为什么 yum 不能单独下载每个文件并将它们保存到磁盘上?当更新大量软件包时,所有下载必须同时装入 RAM 的要求有点愚蠢。它可以首先将它们下载到磁盘,然后它就有足够的 RAM 来安装各个软件包。如果正确完成,更新所有内容所使用的内存不应超过更新最大的单个包。换句话说,如果三个无依赖包需要更新 A、B 和 C 量的 RAM,则 yum 的内存使用量应该是 max(A,B,C) 而不是A +B+C。

有没有办法做到这一点,或者这只是 yum 的缺点?

其他人告诉我,它yum不会下载到 RAM 中。那么,我不太确定为什么它只下载软件包直到 RAM 已满然后停止。yum 的下载位置不在 RAM 磁盘上,并且有足够的可用磁盘空间。问题仍然存在。