5

我正在执行部署过程中的性能改进任务。在整个过程中,我看到 rpm 安装是按顺序进行的,并且依赖包安装需要更多时间。我是 RPM 的新手,正在寻找一种并行运行这些安装以减少部署时间的方法。

如果您能为我提供并行运行这些 rpm 的建议/解决方案,那就太好了!

4

1 回答 1

4

因此,当您安装 RPM 时,它会创建所谓的 rpm 数据库锁,并且此锁文件会阻止您运行另一个 rpm 实例(并通过关联 yum)。我想这是为了确保在尝试安装多个软件包时不会搞砸交易。想象一下,有一个软件包需要您已经安装的 lib 的更新版本,如果两个进程试图一个接一个地修改这些文件,这将如何发生冲突,库链接将如何工作,可能存在什么样的参考问题, ETC。?

这意味着即使您尝试从两个不同的终端安装两个 RPM,第二次尝试也会失败,因为第一个进程已经拥有 rpm 数据库锁,并且您必须等到该锁被释放才能从另一个终端安装,或者基本上是另一个过程。

所以这就引出了另一个问题,如果我们必须按顺序安装软件包,我们怎样才能提高 RPM 的安装速度?我建议查看以下选项:

查看 RPM 是从哪里拉下来的,如果它来自某个外部 EPEL 机器或网络外部的另一台服务器,请考虑设置一个本地镜像,这将允许在您的镜像上更新包,然后在您执行部署时您正在从拥有更多带宽的本地位置拉取数据,以确保它尽快到达机器。

考虑在部署期间检查 RAM 利用率,如果盒子被敲打,yum 安装会慢得多。如果可能的话,在部署期间停止某些服务以增加安装可能是值得的。

确认您需要正在安装的所有内容。这些软件包中的一些是否有可能通过 kickstart 或配置管理工具进入初始服务器构建?我们正在安装的 RPM(如果是自定义的)是否具有在您的组织中是默认的依赖项,并且并不是真正需要的(有时人们只是有一个默认规范,一切都是建立的)?

这些是我现在能想到的所有建议,希望对您有所帮助。

于 2013-03-30T06:02:15.633 回答