我们一直在 Mac OS X 服务器上通过 SSH 运行 git。(它恰好是一台 Mini。)问题是,它的速度非常慢。我们经常看到克隆存储库的速度低于 100KiB/s从此服务器,以及从其他地方克隆存储库的类似速度到此服务器。问题不在于服务器或其网络连接;我们进行了速度测试,发现下载速度为 1.5 到 2MB/s,上传速度高达 7MB/s。scp
大文件的传输也同样快速。
我们的理论是 git 正在移动大量的小文件,这导致了文件系统开销,从而减慢了传输速度。
- 这是一个合理的理论吗?
- 我们可以做些什么来提高此机器上的 git 性能,或者我们是否应该为我们的 git 存储库寻找替代托管?
答案1
如果您的 git repo 包含大量小文件,您的理论听起来很合理。在单个磁盘上,没有硬件加速 (SSD),您最多可能会看到两位数的 tps iostat
。
收集一些数据来帮助验证或证伪你的理论。
# iostat -d 1
disk0 disk1 disk2
KB/t tps MB/s KB/t tps MB/s KB/t tps MB/s
64.41 23 1.43 90.38 11 1.01 581.67 0 0.02
20.00 2 0.04 0.00 0 0.00 0.00 0 0.00
265.33 3 0.78 0.00 0 0.00 0.00 0 0.00