我遇到一个特定服务器的问题,我很乐意帮助调试。
运行git版本1.7.10.msysgit.1作为git扩展2.3.1的一部分安装 Windows 2003 Standard R2 SP2。 cwRsync(基于Cygwin 1.7)也安装了。 Trend AV正在运行(没有权限可以更改它,因为它是一台工作机器)。服务器是VMWare VM,并且可以合理加载。
主要问题是即使对于非常小的存储库(600k和26个文件),git pull(来自git扩展或git bash)也需要几分钟。 CPU负载持续时间上升至接近100%(在1个CPU上)。任务管理器将此负载归因于"系统"。 git.exe的内存和CPU保持不变(和低)。
一般来说,git最初在服务器上做任何事都很慢。我通过更改$ PS1来删除__git_ps1,从而显着改善了这一点。在这个git clone之后,git push,本地git ops仍然相当缓慢(每个5-10秒),但至少它只是可用。 (我是基于我90%的时间的Linux,所以期待超快的速度!)
git pull期间的数据包捕获表明,SSH通信在整个过程中发生了80%,并持续了几秒钟(正如您在一个好的系统上所预期的那样)。功能上git pull成功完成,没有报告错误。
手动使用ssh登录或拉取文件似乎没问题使用plink,原始ssh(捆绑)ssh 4.6p1 openSSL 0.9.8e或最新替换ssh 5.9p1 openSSL 0.9.8s 这种折扣任何网络或SSH相关方面。
系统日志或git扩展日志中没有任何内容指示任何错误。
我在2个已安装的磁盘上查看了de-frag。两者都需要去碎(10%和14%),一个90%满,另一个有一些合理的空间。我没有权限去碎片,但我尝试将repo克隆到两个磁盘上,但故障没有显着差异。
我对Trend AV持怀疑态度(但不能改变它以消除它)但是在另一台服务器上使用相同的存储库运行相同的测试,这非常快。
我怀疑git可能扫描$ HOME(该帐户在NetHood子目录下有一堆外部股票)但在NetHood中没有任何内容的单独帐户下运行相同的测试没有任何区别。
我知道这不是产品问题,但我已经没有想法了。鉴于我试图说服有关公司迁移到git - 在公司服务器上这样的问题并不完全有助于我的论点!
由于 戴夫
答案 0 :(得分:3)
这似乎是由msysgit使用古老的OpenSSH版本引起的。 我想这个人在这里解决了你的问题: http://darrell.mozingo.net/2011/09/29/painfully-slow-clone-speeds-with-msysgit-gitextensions/ 我还没有按照他的指示行事,所以我必须报告这是否对我有用。
答案 1 :(得分:1)
帮助正在进行中,commit d637d1b(对于git 1.9.x / 2.0,2014年第2季度):
改进我们的哈希表,以使其满足msysgit
fscache
project的需求,并带来一些不错的性能改进。
git status
和git clone
应该从这个新的hasmap API获得提升。
答案 2 :(得分:0)
我遇到了同样的问题,将msysgit升级到最新版本(1.9.5 Preview 20141217)解决了这个问题。