質問: hyper-vサーバー内でgit clone / fetchが非常に遅い理由を評価する方法は? ubuntu server 12.0.4にgitをインストールし、gitlabと連携して作業しています。 ubuntu自体は、hyper-v server 2012 r2の仮想マシンです。コマンドのパフォーマンスを比較していますgit clone git@my-server:group/repo.gitなので、これは「ローカルgit」プロトコルではなく、常にsshです。同じvmからsshを介してクローンを作成する場合-それは速度〜15-20 mib/sを示します。他のvmまたは他のマシンから同じlan内-70-200 kib/s、これは痛々しいほど遅いwindowsボックスとlinuxボックスの両方を試しました。私はグーグルしようとしました this oneを見つけましたが、それは問題ではないようです:a)puttyのplinkを使用しようとしました; b)windowsでopensshを2014年1月バージョンに更新するか、c)linuxボックスを使用する-運が悪い。私はiperfを使用しようとしましたが、それはネットワークの問題ではありません。同じハイパーバイザー内のvm間の接続は、vmとlan内の他のマシンの間で〜300-400 mb/sです。 -〜10 mb/s(100 mbitイーサネット接続)。だから、私の質問は-ボトルネックがどこにあるかをどのように見つけることができるのですか?私は今アイデアがありません。追伸それはおそらくsshの問題ではありません-httpを介した複製はほぼ同じ速度を示します。
回答: gitlab vmから15 mbでクローンを作成できるという事実は、ハイパーバイザーのネットワーク抽象化レイヤーに問題がある可能性が高いです。 2つのlinux vm間で 生データ を送信して、すべてのネットワーク接続が遅いかどうかをテストします。 セカンダリlinux vmで次を実行: nc -v -l -p 4321 > /dev/null gitlab vmで次を実行: dd if=/dev/zero bs=1024k count=512 | nc -v $ip_of_first_machine -p 4321 これにより、ネットワーク速度が表示されます。おそらくこれは 遅い vmqをオフにする ハイパーバイザー 試してみてください ジャンボフレームをオフにする (mtu> 1500) 最後に、gitlab vm内のwiresharkからtcpダンプを実行してみてください。飛び出すエラーがないか確認する