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 开的越大, 开的越大还是越卡................