2017-09-01 24 views
-1

你所看到的和你有沒有爲這個問題的解決方案或調查的想法:詹金斯間歇掛起的git的克隆/從GitHub簽上流水線作業

  • 使用管道從GitHub SCM詹金斯流水線作業間歇性地掛在克隆/結帳
  • 沒有在詹金斯日誌中報告這個情況
  • 似乎只發生時,我們有很多的活動(衝刺演示之前通常是正確的)
  • 的一段時間後清除 - 一直沒能夠發現ECT太大的格局尚未

    檢查出的git [email protected]:MyTeam/myproject的成 的/ var/lib中/詹金斯/職位/ myproject的-DEV-部署/工作區@腳本讀取部署的/ dev-Jenkinsfile 混帳rev-parse --is-inside-work-tree#timeout = 10 從遠程Git存儲庫獲取更改 git config remote.origin.url [email protected]:MyTeam/myproject#timeout = 10 獲取上游更改[email protected]:MyTeam/myproject git --version#timeout = 10 使用GIT_SSH設置憑證爲myproject部署密鑰 git fetch --tags --progress [email protected]:MyTeam/myproject + refs/heads/:refs/remotes/origin/```

回答

0

Java應用程序中的一個可怕的間歇性問題?到我們去的JVM設置。幸運的是,CloudBees在此寫了一篇很棒的文章Tuning Jenkins GC For Responsiveness and Stability with Large Instances

原來這不是主要因素。真正的原因是網絡配置和備份作業對飽和度的影響。儘管如此,一篇優秀的文章

下面是我們如何調試它:

`

#!/usr/bin/env bash 

echo Clearing Previous Run 
rm -rf /tmp/debug-repo-http 
rm -rf /tmp/debug-repo-ssh 

echo clone1: `date` 
time git clone https://github.com/github/debug-repo /tmp/debug-repo-http 

echo clone2: `date` 
time git clone [email protected]:github/debug-repo /tmp/debug-repo-ssh 

echo Ping: `date` 
time ping -c 10 github.com 

#echo traceroute: `date` 
#traceroute github.com 
  • 設置詹金斯的工作嘗試結賬,失敗並報告是否花了30多秒 - 一次通過管道+插件,並通過一次shell腳本

  • 開始運行不同的測試:轉儲所有碼頭工人的圖像並重新拉,拉S3備份,S3在另一個網絡區推備份等

  • 重複檢測和比較結果

+0

問題是'git clone'與scm checkout不是完全相同的代碼。我相信我們嘗試過測試,雖然本機是好的,但管道結賬不是。 –