REPO SYNC開多線程托代碼建議


android代碼越來越大 現在從廠商下載的源碼都有50G左右了。如果到了項目后期預計妥妥的100G以上. 然后開發直接從gerrit服務器托代碼就會遇到托代碼卡頓問題.

 

1.在服務器gerrit服務器不卡頓的情況下筆者測試過,

  1) 不使用本地mirror :  repo sync -cj3 -d 和 repo  sync -cj16的托代碼時間差 3-5min 左右. 

  2) 使用本地mirror: repo sync -cj3 -d 和 repo  sync -cj16的托代碼時間差 30s 左右.

 

2.在服務器卡頓的情況下:

  gerrit服務器卡起來了,開多少都會繼續卡頓.開的越大,托代碼越卡.

 

 

2. sync -jX : 意思是本地使用多線程一次性從服務器上拖 多個倉庫. 

 

3. gerrit服務器端默認一次性后台隊列是12個。服務器代碼經歷打包,傳送兩個階段到達客戶端。 比較好的狀態是打包完成后傳送很快,這樣就可以開始下一個git倉庫的打包和傳送。

  打包是gerrit本地處理,速度主要看cpu和磁盤性能,正經一點的服務器這里都沒啥問題。(PS:像我老東家的代碼服務器就不行,8線程16G內存壓根扛不住。。。。)

  傳送主要就是看帶寬了,這個時候問題就來了。公司網普遍是千兆網,網速100M/S 左右。坑一點的公司還是百兆瓦,10M/S左右。 根本不能很快的將gerrit服務器打包好的代碼傳送過來。

  就會造成gerrit服務器后台task排隊,后台隊列一共就12個。排隊候后面排不上隊列的任務 ,就會一直卡着不動。表現就是托代碼拖不動, 提交代碼也提交不了

  造成的惡性循環就是越拖越卡,越卡 sync -j100000 開的越大, 開的越大還是越卡................

 

 

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM