4

我遇到了特定服务器的问题,希望能在调试方面提供帮助。

运行 git 版本 1.7.10.msysgit.1 作为 git 扩展 2.3.1 Windows 2003 Standard R2 SP2 的一部分安装。还安装了 cwRsync(基于 Cygwin 1.7)。Trend AV 正在运行(因为它是一台工作机器,所以不能更改它)。服务器是一个 VMWare 虚拟机,并且负载合理。

主要问题是 git pull(来自 git 扩展或 git bash)即使对于非常小的存储库(600k 和 26 个文件)也需要几分钟。CPU 负载在持续时间内上升到接近 100%(在 1 个 CPU 上)。任务管理器将此负载归因于“系统”。git.exe 的内存和 CPU 保持不变(并且很低)。

一般来说,git 最初在服务器上做任何事情都很慢。我通过更改 $PS1 以删除 __git_ps1 显着改善了这一点。在这个 git clone、git push 之后,本地 git 操作仍然相当缓慢(每个 5-10 秒),但至少它几乎可以使用。(我 90% 的时间都是基于 linux 的,所以期待超快的速度!)

git pull 期间的数据包捕获显示 SSH 通信在整个过程中发生了 80%,并且只持续了几秒钟(正如您在一个好的系统上所期望的那样)。功能上 git pull 成功完成,没有报告错误。

使用 plink 手动使用 ssh 登录或提取文件似乎没问题,原始 ssh(捆绑) ssh 4.6p1 openSSL 0.9.8e 或最新替换 ssh 5.9p1 openSSL 0.9.8s 这种折扣任何网络或 SSH 相关方面。

系统日志或 git 扩展日志中没有任何内容指示任何错误。

我查看了 2 个已安装磁盘上的碎片整理。两者都需要去碎片化(10% 和 14%),一个 90% 已满,另一个有一些合理的空间。我无权进行碎片整理,但我尝试将 repo 克隆到两个磁盘上,但故障没有显着差异。

我对 Trend AV 持怀疑态度(但无法更改它以消除它),但我在另一台服务器上使用相同的存储库运行了相同的测试,而且速度非常快。

我怀疑 git 可能会扫描 $HOME(该帐户在 NetHood 子目录下有大量外部共享),但在单独的帐户下运行相同的测试,NetHood 中没有任何内容没有任何区别。

我知道这不是产品问题,但我已经没有想法了。鉴于我正试图说服有关公司迁移到 git - 公司服务器上的此类问题并不能完全帮助我的论点!

谢谢戴夫

4

3 回答 3

3

这似乎是由 msysgit 使用古老的 OpenSSH 版本引起的。我认为这个人在这里解决了你的问题: http ://darrell.mozingo.net/2011/09/29/painfully-slow-clone-speeds-with-msysgit-gitextensions/ 我还没有按照他的指示,所以我必须报告这是否对我有用。

于 2012-05-27T19:57:27.950 回答
1

帮助正在进行中,提交 d637d1b(对于 git 1.9.x/2.0,2014 年第二季度):

改进我们的哈希表,使其满足msysgitfscache项目的需求,并带来一些不错的性能改进。

git status并且git clone应该从这个新的hasmap API中得到提升。

于 2014-03-02T17:46:44.933 回答
0

我遇到了同样的问题,将 msysgit 升级到最新版本(1.9.5 Preview 20141217)解决了这个问题。

于 2015-02-09T16:06:05.697 回答