2012-04-13 54 views
4

我有一个特定服务器的问题,我希望能帮助您进行调试。在Windows 2003服务器上git pull非常慢(不是ssh传输部分)

运行git 1.7.10.msysgit.1作为git扩展的一部分安装2.3.1 Windows 2003 Standard R2 SP2。也安装了cwRsync(基于Cygwin 1.7)。 Trend AV正在运行(因为它是一台工作机器,所以没有任何改变)。该服务器是一个VMWare虚拟机,并被合理加载。

主要的问题是,即使是一个非常小的仓库(600k & 26文件),git pull(无论是从git扩展还是git bash)都需要几分钟时间。持续时间内,CPU负载上升至接近100%(1个CPU)。任务管理器将此负载归入“系统”。 git.exe的内存和CPU保持不变(和低)。

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

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

手动使用ssh登录或拉文件显示OK使用砰砰,原来的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 subdir下的外部股票负载),但在NetHood中没有任何内容的情况下在单独的帐户下运行相同的测试没有任何区别。

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

感谢 戴夫

+0

你能解释一下这是什么意思吗? “我通过更改$ PS1来删除__git_ps1来改善这一点” – 2014-12-16 14:00:48

+0

这似乎是在讨论git目录中的/ etc/profile文件。 Windows不让我编辑这个文件,看看这是否有帮助。 – 2014-12-16 14:17:24

回答

1

帮助是在路上,与commit d637d1b(适用于git 1.9.x/2。0,2014年第2季度):

改进我们的哈希表以使其满足msysgit fscache project的需求,并有一些不错的性能改进。

git statusgit clone应该从这个新hasmap API获得提振。

0

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

相关问题