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 開的越大, 開的越大還是越卡................