Deployment 有没有办法并行运行RPM安装?

Deployment 有没有办法并行运行RPM安装?,deployment,rpm,Deployment,Rpm,我正在执行部署过程中的性能改进任务。在进行过程中,我看到rpm安装是按顺序进行的,并且依赖包安装需要更多的时间。我是RPM的新手,正在寻找并行运行这些安装以减少部署时间的方法 如果您能为我提供一个并行运行这些RPM的建议/解决方案,那就太好了 因此,当您安装RPM时,它会创建一个称为RPM数据库锁的文件,该锁文件会阻止您运行另一个RPM实例(通过关联)。我想这是为了确保当多个软件包试图安装时,事务不会被搞砸。想象一下,如果有一个包需要一个已经安装的lib的更新版本,那么如果两个进程试图一个接一个

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


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

因此,当您安装RPM时,它会创建一个称为RPM数据库锁的文件,该锁文件会阻止您运行另一个RPM实例(通过关联)。我想这是为了确保当多个软件包试图安装时,事务不会被搞砸。想象一下,如果有一个包需要一个已经安装的lib的更新版本,那么如果两个进程试图一个接一个地修改这些文件,那么这个包会有什么冲突,库链接会如何工作,可能会出现什么样的引用问题,等等

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

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

查看RPMS从哪一个外部EPEL机器或网络之外的另一个服务器被拉下来时,考虑设置一个本地镜像,这将允许包在您的镜像上更新,然后,当您执行部署时,您将从一个具有更多带宽的本地位置进行部署,以确保它尽快到达机器

考虑在部署过程中检查RAM利用率,如果机箱受到影响,则yum安装将慢得多。如果可能的话,在部署期间停止某些服务以增加安装可能是值得的

确认您需要所有正在安装的设备。是否有可能通过kickstart或配置管理工具将这些包中的某些包应用到初始服务器构建中?我们正在安装的RPM(如果是定制的)是否具有在您的组织中是默认的依赖项,而不是真正需要的依赖项(有时人们只是有一个默认的规范—一切都是基于此构建的)


这些都是我现在能想到的建议,希望能帮助您入门。

+1除了它是一个RPM数据库锁,而不是yum锁。yum将拥有自己的独立锁,但由于DB的原因,您也不能并行运行两个RPM副本;这与百胜无关。@Forrest-非常感谢您的详细解释,它确实帮助我改变了对其他领域的关注。@Aaron-谢谢您的评论!