我正在开发部署过程中的性能改进任务.在完成整个过程的过程中,我看到rpm安装是按顺序进行的,并且相关的软件包安装需要更多时间.我是RPM的新手并且正在寻找并行运行这些安装的方法以减少部署时间.
如果你能为我提供一个并行运行这些rpms的建议/解决方案,那将是很棒的!
因此,当您安装RPM时,它会创建一个称为rpm的数据库锁,并且此锁文件使您无法运行rpm的另一个实例(并通过关联yum)。我想这是为了确保在尝试安装多个软件包时不会搞砸交易。想象一下,如果一个软件包需要您已经安装的lib的更新版本,如果两个进程试图一个接一个地修改这些文件,那么会发生冲突,库链接将如何工作,可能会有什么样的参考问题?等等?
这意味着即使您尝试从两个不同的终端安装两个RPM,第二次尝试也会失败,因为第一个进程已经具有rpm数据库锁,并且您必须等到该锁释放后才能从另一个终端安装,或者基本上是另一个过程。
因此,这引出了另一个问题,如果我们必须按顺序安装软件包,如何提高RPM的安装速度?我建议您查看以下选项:
查看RPM从何处下拉(如果来自外部EPEL计算机或网络之外的其他服务器),请考虑设置本地镜像,这将允许您在镜像上更新软件包,然后在执行部署时您是从具有更多带宽的本地位置拉来的,以确保它尽快到达计算机。
考虑在部署过程中检查RAM利用率,如果遇到麻烦,则yum安装会慢得多。如果可能的话,可能需要在部署期间停止某些服务以增加安装量。
确认您需要安装的所有内容。是否有一些软件包可以通过kickstart或配置管理工具导入到初始服务器版本中?我们正在安装的RPM(如果是自定义的)是否可以具有组织中默认的依赖关系,而并不是真正需要的依赖关系(有时人们只有默认的规格,一切都已建立)?
这些都是我现在可以想到的建议,希望可以帮助您入门。