Gitlab:Git 操作在 EC2 上极其缓慢

Shr*_*yas 5 git amazon-ec2 amazon-web-services gitlab

编辑:事实证明这是一个 Gitlab 问题,但我仍然没有解决方案。

\n\n

我的两个 AWS EC2 实例出现了奇怪的情况。它们在操作系统、区域和实例类型(均为 t3.micro)方面完全相同,设置方式也相同(但是,第一个是在几个月前设置的)。

\n\n

两者都存在于 eu-central-1c 可用区中,并且都在同一个 git 存储库上运行。两者也都是最新的(CentOS 7.6.1810)。

\n\n

较旧的服务器:

\n\n
$ time git pull\nAlready up-to-date.\n\nreal    0m0.306s\nuser    0m0.034s\nsys     0m0.016s\n
Run Code Online (Sandbox Code Playgroud)\n\n

较新的服务器:

\n\n
$ time git pull\nAlready up-to-date.\n\nreal    2m7.547s\nuser    0m0.026s\nsys     0m0.024s\n
Run Code Online (Sandbox Code Playgroud)\n\n

它也始终需要大约 2 分 7 秒。

\n\n

还:

\n\n

较旧的服务器:

\n\n
--2019-04-09 10:52:03--  https://speed.hetzner.de/1GB.bin\nResolving speed.hetzner.de (speed.hetzner.de)... 88.198.248.254, 2a01:4f8:0:59ed::2\nConnecting to speed.hetzner.de (speed.hetzner.de)|88.198.248.254|:443... connected.\nHTTP request sent, awaiting response... 200 OK\nLength: 1048576000 (1000M) [application/octet-stream]\nSaving to: \xe2\x80\x981GB.bin\xe2\x80\x99\n\n100%[===============================================================>] 1,048,576,000  121MB/s   in 6.5s   \n\n2019-04-09 10:52:10 (154 MB/s) - \xe2\x80\x981GB.bin\xe2\x80\x99 saved [1048576000/1048576000]\n
Run Code Online (Sandbox Code Playgroud)\n\n

较新的服务器:

\n\n
--2019-04-09 10:54:04--  https://speed.hetzner.de/1GB.bin\nResolving speed.hetzner.de (speed.hetzner.de)... 88.198.248.254, 2a01:4f8:0:59ed::2\nConnecting to speed.hetzner.de (speed.hetzner.de)|88.198.248.254|:443... connected.\nHTTP request sent, awaiting response... 200 OK\nLength: 1048576000 (1000M) [application/octet-stream]\nSaving to: \xe2\x80\x981GB.bin\xe2\x80\x99\n\n100%[===============================================================>] 1,048,576,000  130MB/s   in 5.9s   \n\n2019-04-09 10:54:10 (170 MB/s) - \xe2\x80\x981GB.bin\xe2\x80\x99 saved [1048576000/1048576000]\n
Run Code Online (Sandbox Code Playgroud)\n\n

编辑:我尝试使用 GitHub 存储库而不是 GitLab,结果发现这似乎是 GitLab 问题。是什么可能导致 GitLab 快速响应旧服务器而不是另一台服务器?

\n\n

编辑 2:尝试通过 HTTPS 克隆。仅需要 2 分钟,它就会询问我的用户名。

\n\n

另外,通过 SSH 进行详细输出:

\n\n
$ GIT_CURL_VERBOSE=1 GIT_TRACE=1 git pull\ntrace: exec: 'git-pull'\ntrace: run_command: 'git-pull'\ntrace: built-in: git 'rev-parse' '--git-dir'\ntrace: built-in: git 'rev-parse' '--is-bare-repository'\ntrace: built-in: git 'rev-parse' '--show-toplevel'\ntrace: built-in: git 'ls-files' '-u'\ntrace: built-in: git 'symbolic-ref' '-q' 'HEAD'\ntrace: built-in: git 'config' '--bool' 'branch.#hidden#.rebase'\ntrace: built-in: git 'config' '--bool' 'pull.rebase'\ntrace: built-in: git 'rev-parse' '-q' '--verify' 'HEAD'\ntrace: built-in: git 'fetch' '--update-head-ok'\ntrace: run_command: 'ssh' '-p' '#hidden#' 'git@#hidden.tld#' 'git-upload-pack '\\''/#hidden#/#hidden#.git'\\'''\n
Run Code Online (Sandbox Code Playgroud)\n

Shr*_*yas 4

使用详细输出发现问题。

较新的服务器尝试使用 IPv6 联系 git 端点服务器,并等待超时,然后再回退到 IPv4(实际上有效)。

$ GIT_CURL_VERBOSE=1 GIT_TRACE=1 git clone https://#hidden#/#hidden#/#hidden#.git
trace: built-in: git 'clone' 'https://#hidden#/#hidden#/#hidden#.git'
Cloning into '#hidden#'...
trace: run_command: 'git-remote-https' 'origin' 'https://#hidden#/#hidden#/#hidden#.git'
* Couldn't find host #hidden# in the .netrc file; using defaults
* About to connect() to #hidden# port 443 (#0)
*   Trying x:x:x:x:x:x:x:x...
* Connection timed out
*   Trying x.x.x.x...
Run Code Online (Sandbox Code Playgroud)