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