編集:これはGitlabの問題であることが判明しましたが、まだ解決策がありません。
2つのAWSEC2インスタンスで奇妙な状況が発生しています。これらは、OS、リージョン、およびインスタンスタイプ(両方ともt3.micro)に関してまったく同じであり、同じ方法でセットアップされます(ただし、最初のセットアップは数か月前です)。
どちらもeu-central-1cアベイラビリティーゾーンに存在し、どちらも同じgitリポジトリで動作しています。どちらも最新です(CentOS7.6.1810)。
古いサーバー:
$ time git pull
Already up-to-date.
real 0m0.306s
user 0m0.034s
sys 0m0.016s
新しいサーバー:
$ time git pull
Already up-to-date.
real 2m7.547s
user 0m0.026s
sys 0m0.024s
また、一貫して約2分7秒かかります。
また:
古いサーバー:
--2019-04-09 10:52:03-- https://speed.hetzner.de/1GB.bin
Resolving speed.hetzner.de (speed.hetzner.de)... 88.198.248.254, 2a01:4f8:0:59ed::2
Connecting to speed.hetzner.de (speed.hetzner.de)|88.198.248.254|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1048576000 (1000M) [application/octet-stream]
Saving to: ‘1GB.bin’
100%[===============================================================>] 1,048,576,000 121MB/s in 6.5s
2019-04-09 10:52:10 (154 MB/s) - ‘1GB.bin’ saved [1048576000/1048576000]
新しいサーバー:
--2019-04-09 10:54:04-- https://speed.hetzner.de/1GB.bin
Resolving speed.hetzner.de (speed.hetzner.de)... 88.198.248.254, 2a01:4f8:0:59ed::2
Connecting to speed.hetzner.de (speed.hetzner.de)|88.198.248.254|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1048576000 (1000M) [application/octet-stream]
Saving to: ‘1GB.bin’
100%[===============================================================>] 1,048,576,000 130MB/s in 5.9s
2019-04-09 10:54:10 (170 MB/s) - ‘1GB.bin’ saved [1048576000/1048576000]
編集:GitLabの代わりにGitHubリポジトリを使用しようとしましたが、GitLabの問題のようです。 GitLabが古いサーバーにすばやく応答するが、他のサーバーには応答しない原因は何でしょうか?
編集2:HTTPS経由でクローンを作成しようとしました。ユーザー名を尋ねるだけで2分かかります。
また、SSHを介した詳細な出力:
$ GIT_CURL_VERBOSE=1 GIT_TRACE=1 git pull
trace: exec: 'git-pull'
trace: run_command: 'git-pull'
trace: built-in: git 'rev-parse' '--git-dir'
trace: built-in: git 'rev-parse' '--is-bare-repository'
trace: built-in: git 'rev-parse' '--show-toplevel'
trace: built-in: git 'ls-files' '-u'
trace: built-in: git 'symbolic-ref' '-q' 'HEAD'
trace: built-in: git 'config' '--bool' 'branch.#hidden#.rebase'
trace: built-in: git 'config' '--bool' 'pull.rebase'
trace: built-in: git 'rev-parse' '-q' '--verify' 'HEAD'
trace: built-in: git 'fetch' '--update-head-ok'
trace: run_command: 'ssh' '-p' '#hidden#' 'git@#hidden.tld#' 'git-upload-pack '\''/#hidden#/#hidden#.git'\'''
詳細出力を使用して問題が見つかりました。
新しいサーバーは、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...