threads / discuss / 31913

Git push slowly under 1000M/s network

Subject: Git push slowly under 1000M/s network

## tl;dr

4 messages between Oct 23, 2012 and Oct 25, 2012.

replies: 3people: 2as markdown or json

Joey Jiao· Oct 23, 2012, 06:27 UTC · lore

Hi Git Listeners, I'm facing one problem when pushing to git repository via gerrit port. Don't stop to look into the below content, as I doubt it might be a git problem.

The pushing takes me 7mins~11mins each time every I had git gc on remote. The remote server is 24 core with scsi disk. And the connection is within 1000M/s intranet. The pushing is only slowly on this kernel project, but faster on other android projects, takes seconds only. I tried on 4 core and 24 core clients to do the push, the time is almost the same. So I think it's not the client problem.

The command I use as below. I also tried to pushing to git repository directly, it is also slow, only some seconds benifit. So I think it might be not the gerrit problem. $ git push -v ssh://remote_url:29418/kernel/msm.git HEAD:refs/changes/33599 The stderr stops at remote: Resolving deltas: 0% (0/2) for 99% of the time.

I added some timestamp in the git source code, Like git version 1.8.0. The receive_status called by send_pack inside send-pack.c takes the 99% of the time.

It looks like the client is waiting the pushing result status from server although by checking server side, the real object has already been upload succeed.

Below is the log after adding time info. $ time git push -v ssh://git.qrd.qualcomm.com:29418/kernel/msm.git HEAD:refs/changes/33599 2>&1|tee -a log.txt Pushing to ssh://git.qrd.qualcomm.com:29418/kernel/msm.git error: Time start packet_flush: Tue Oct 23 14:14:47 2012

error: Time finish packet_trace: Tue Oct 23 14:14:47 2012
error: Time finish safe_write: Tue Oct 23 14:14:47 2012
error: Time start receive_status: Tue Oct 23 14:14:47 2012

remote: Resolving deltas: 0% (0/2) remote: (W) afafdad: no files changed, message updated error: Time start packet_read_line: Tue Oct 23 14:24:41 2012 , len=10 error: Time packet_read_line: Tue Oct 23 14:24:41 2012 , len=22 error: Time packet_read_line: Tue Oct 23 14:24:41 2012 , len=0 error: Time finish receive_status: Tue Oct 23 14:24:41 2012

To ssh://git.qrd.qualcomm.com:29418/kernel/msm.git
 * [new branch]      HEAD -> refs/changes/33599

real 9m56.928s user 0m0.364s sys 0m0.160s

-- 
-Joey Jiao
Joey Jiao· Oct 23, 2012, 10:11 UTC · re: Joey Jiao · lore

Re: Git push slowly under 1000M/s network

Well, after checked pushing directly to git which takes only 6 seconds. So it should be not a issue of git in c. But might be an issue with jgit or gerrit.

2012/10/23 Joey Jiao <joey.jiaojg@gmail.com>:
Show 57 quoted lines
> Hi Git Listeners,
> I'm facing one problem when pushing to git repository via gerrit port.
> Don't stop to look into the below content, as I doubt it might be a
> git problem.
>
> The pushing takes me 7mins~11mins each time every I had git gc on remote.
> The remote server is 24 core with scsi disk. And the connection is
> within 1000M/s intranet.
> The pushing is only slowly on this kernel project, but faster on other
> android projects, takes seconds only.
> I tried on 4 core and 24 core clients to do the push, the time is
> almost the same. So I think it's not the client problem.
>
> The command I use as below. I also tried to pushing to git repository
> directly, it is also slow, only some seconds benifit. So I think it
> might be not the gerrit problem.
> $ git push -v ssh://remote_url:29418/kernel/msm.git HEAD:refs/changes/33599
> The stderr stops at remote: Resolving deltas:   0% (0/2) for 99% of the time.
>
> I added some timestamp in the git source code, Like git version 1.8.0.
> The receive_status called by send_pack inside send-pack.c takes the
> 99% of the time.
>
> It looks like the client is waiting the pushing result status from
> server although by checking server side, the real object has already
> been upload succeed.
>
> Below is the log after adding time info.
> $ time git push -v ssh://git.qrd.qualcomm.com:29418/kernel/msm.git
> HEAD:refs/changes/33599 2>&1|tee -a log.txt
> Pushing to ssh://git.qrd.qualcomm.com:29418/kernel/msm.git
> error: Time start packet_flush: Tue Oct 23 14:14:47 2012
>
> error: Time finish packet_trace: Tue Oct 23 14:14:47 2012
>
> error: Time finish safe_write: Tue Oct 23 14:14:47 2012
>
> error: Time start receive_status: Tue Oct 23 14:14:47 2012
>
> remote: Resolving deltas:   0% (0/2)
> remote: (W) afafdad: no files changed, message updated
> error: Time start packet_read_line: Tue Oct 23 14:24:41 2012
> , len=10
> error: Time packet_read_line: Tue Oct 23 14:24:41 2012
> , len=22
> error: Time packet_read_line: Tue Oct 23 14:24:41 2012
> , len=0
> error: Time finish receive_status: Tue Oct 23 14:24:41 2012
>
> To ssh://git.qrd.qualcomm.com:29418/kernel/msm.git
>  * [new branch]      HEAD -> refs/changes/33599
>
> real    9m56.928s
> user    0m0.364s
> sys     0m0.160s
> --
> -Joey Jiao
-- 
-Joey Jiao
Shawn Pearce· Oct 23, 2012, 17:09 UTC · re: Joey Jiao · lore

Re: Git push slowly under 1000M/s network

On Mon, Oct 22, 2012 at 11:27 PM, Joey Jiao <joey.jiaojg@gmail.com> wrote:
Show 7 quoted lines
> It looks like the client is waiting the pushing result status from
> server although by checking server side, the real object has already
> been upload succeed.
>
> Below is the log after adding time info.
> $ time git push -v ssh://git.qrd.qualcomm.com:29418/kernel/msm.git
> HEAD:refs/changes/33599 2>&1|tee -a log.txt
...
> remote: Resolving deltas:   0% (0/2)
> remote: (W) afafdad: no files changed, message updated
...
> real    9m56.928s
> user    0m0.364s
> sys     0m0.160s

What version of Gerrit are you using? How many changes already exist in this project?

I am fairly certain this is an issue with Gerrit. Which may be better discussed at http://groups.google.com/group/repo-discuss

Joey Jiao· Oct 25, 2012, 05:04 UTC · re: Shawn Pearce · lore

Re: Git push slowly under 1000M/s network

Yes, I believe it's gerrit problem and will discuss there. During first minutes of restarting gerrit, the pushing becomes quite faster 13s instead.

2012/10/24 Shawn Pearce <spearce@spearce.org>:
Show 21 quoted lines
> On Mon, Oct 22, 2012 at 11:27 PM, Joey Jiao <joey.jiaojg@gmail.com> wrote:
>> It looks like the client is waiting the pushing result status from
>> server although by checking server side, the real object has already
>> been upload succeed.
>>
>> Below is the log after adding time info.
>> $ time git push -v ssh://git.qrd.qualcomm.com:29418/kernel/msm.git
>> HEAD:refs/changes/33599 2>&1|tee -a log.txt
> ...
>> remote: Resolving deltas:   0% (0/2)
>> remote: (W) afafdad: no files changed, message updated
> ...
>> real    9m56.928s
>> user    0m0.364s
>> sys     0m0.160s
>
> What version of Gerrit are you using?
> How many changes already exist in this project?
>
> I am fairly certain this is an issue with Gerrit. Which may be better
> discussed at http://groups.google.com/group/repo-discuss
-- 
-Joey Jiao

← back to recent threads