2013-03-29 30 views
5

我正在開發部署過程中的性能改進任務。在經歷這個過程時,我發現rpm安裝正在順序進行,並且相關軟件包的安裝需要更多時間。我是RPM的新手,並且尋找一種方法來並行運行這些安裝以減少部署時間。有沒有辦法同時運行RPM安裝?

如果您能夠提供給我一個建議/解決方案來並行運行這些RPM,那將是非常好的!

回答

4

因此,當您安裝RPM時,它會創建所謂的rpm數據庫鎖,並且此鎖定文件使您無法運行另一個rpm實例(以及關聯yum)。我想這是爲了確保交易不會在多個軟件包試圖安裝時搞砸。想象一下,如果有一個軟件包需要您已經安裝的lib的更新版本,那麼如果兩個進程試圖一個接一個地修改這些文件,那麼這種衝突會如何發生衝突?圖書館鏈接如何工作?可能存在哪些參考問題等等?

這意味着即使您嘗試從兩個不同的終端安裝兩個RPM,第二次嘗試也會失敗,因爲第一個進程已經有rpm數據庫鎖定,並且必須等到該鎖定被釋放後才能從另一個終端或基本上另一個進程安裝。

因此,這導致我們另一個問題,如果我們必須按順序安裝軟件包,我們如何提高RPM安裝的速度?我建議您查看以下選項:

查看RPM從哪裏下來,如果它來自EPEL機器外部或者網絡外部的其他服務器,請考慮設置本地鏡像,這將允許軟件包在您的鏡像上進行更新,然後當您執行部署時,您將從本地位置獲取更多帶寬,以確保它儘快進入機器。

考慮在部署過程中檢查RAM的利用率,如果這個盒子受到敲擊,yum安裝會慢得多。如果可能的話,在部署過程中可能需要停止某些服務以增加安裝。

確認您需要安裝的所有東西。是否有可能通過kickstart或配置管理工具將這些軟件包中的某些軟件包放入初始服務器版本中?我們正在安裝的RPM(如果是自定義的)是否具有組織中默認的依賴關係,而且並不是真的需要(有時候人們只有默認規範,所有內容都被構建)?

這些都是我現在可以想到的所有建議,希望能幫助您開始。

+0

+1除了它是一個RPM數據庫鎖,而不是一個yum鎖。 yum將擁有自己的獨立鎖,但由於數據庫的原因,您無法並行運行兩個RPM副本;它與百勝無關。 –

+0

啊對了,我會追加我的答案。 – Forrest

+0

@Forrest - 非常感謝您的詳細解釋,它確實幫助我改變了對其他領域的關注。 – Jay

相關問題