zoukankan      html  css  js  c++  java
  • 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 开的越大, 开的越大还是越卡................

      

      

  • 相关阅读:
    Qt与VC编程合作起龌龊
    谈谈误差补偿
    谈谈单片机编程入门方法
    小议设计模式
    创建VS工程使用神经网络库——FANN
    设计一个循环缓冲区模板
    旧文备份:FFTW介绍
    旧文备份:硬盘MBR引导记录损坏的一种修复方法
    How to disable the unused macros warning? --rust
    看阿里架构师是如何在高并发的情景下运筹帷幄
  • 原文地址:https://www.cnblogs.com/yaoyuanchun/p/13590677.html
Copyright © 2011-2022 走看看