我有一個在Jenkins上運行的持續集成設置,每當我將更改推送到特定分支時,Jenkins啓動50個EC2從站。每個奴隸檢查分支並對分支運行一些測試。如何限制GitLab啓動的git進程數量?
問題是,50個EC2從站一次啓動,他們簽出了我的GitLab服務器的分支,它啓動每個從站的git進程並快速耗盡內存(儘管服務器有7.5 GB的RAM。)
如果我期待在上面,我可以馬上看到,隨着奴隸走了,許多使用Git的過程中出現,並開始迅速消耗掉所有內存。 kern.log告訴我內核必須定期殺死一個git進程,因爲系統內存不足。
我的問題是我怎麼限制GitLab開始以這樣的方式使奴隸不認爲GitLab已經走了git的進程數。 (我想GitLab把請求隊列中,同時爲他們服務10等。)
我也考慮了一些其他的想法。例如,我可以讓一些奴隸(種子奴隸)從GitLab中拉出分支,然後讓其他奴隸從這些種子奴隸中拉出分支。但是,這似乎可能涉及一些工作。
另一個想法是,我可以用幾秒鐘錯開EC2推出,到分佈在一兩分鐘的請求。或者,我可以獲得更多的記憶。
我歡迎任何其他方法來處理這個問題的想法。
你在你的主gitlab盒上運行一個CI運行器嗎? –