您的位置:

Github速度慢情况分析

一、网络瓶颈

1、Github服务器位置

Github服务器的物理位置是在美国,也就是说,无论用户地理位置在哪里,都需要经过长距离的网络传输。


traceroute github.com

1    10.0.0.1
2    192.168.1.1
3    ****** (省略中间路由器)
16   ae1.bb02.sjc01.atlas.cogentco.com
17   38.104.139.210
18   ash-bb3-link.telia.net
19   ash-b1-link.telia.net
20   cloudflare-ic-327307-ash-b1.c.telia.net
21   github.com

通过访问Github返回的IP地址,得知源站点位于美国旧金山,从国内访问需要大量时间,从而导致传输速度慢。

2、国内网络问题

在国内,因为对于Github的限制,访问速度不如国外,也会影响数据的传输。


traceroute github.com

1    10.0.0.1
2    192.168.1.1
3    ****** (省略中间路由器)
16   202.97.49.86
17   27.148.195.130
18   140.205.13.177
19   140.205.81.220
20   140.205.81.116
21   203.208.50.130
22   203.208.50.137
23   203.208.56.181
24   203.208.63.213
25   203.208.60.145
26   185.199.108.153
27   185.199.109.153

从上面traceroute结果可以看出,在16-20跳之间,数据经过了防火墙等相关处理,因为国内的网络政策,做出了限制,导致访问Github变得具有一定困难。

二、资源可用性限制

1、Github官方限制

Github的官方为了维持其资源的稳定性,进行过一系列的限制,如通过CDN分发文件以加快访问速度,但由于其高负载的使用,往往会超出物理服务器的限制,无法提供给用户需要的资源。

2、用户限制

在使用Github再现代码时,用户上传的代码大小也是限制GitHub速度的因素之一。每个仓库都有一个限制,用户只能上传特定大小的文件,如果超出了某一限制,则无法完成上传。整个项目的大小可能有其限制,如Git大小限制为100MB。在超过这个大小时,资源也无法从Github服务器获取,造成了诸如更新和下载等操作缺乏必要的资源支持,造成更新速度慢,下载速度慢等问题。

三、本地环境问题

1、代理问题

由于Github的网站在国内被屏蔽,在访问时可能需要进行代理访问。但在使用代理时,网络连接中会引入额外的缓存限制,所以通过代理访问时,Github速度会受到一定影响。

2、本地网络带宽问题

本地网络带宽过低会导致GitHub资源下载速度变慢,因为本地网络中的速度瓶颈不能满足高速上传下载的要求。

四、解决方案

1、通过访问github加速器解决速度问题(如:cnpmjs.org

2、加入组织,使用私人库,号为操作可以解决一部分速度问题

3、将仓库迁移到本地gitlab搭建的环境中

4、使用Github Desktop工具,通过直接拉取仓库的方式解决访问限制和速度问题

5、使用CDN加速器缓解主机访问压力(如:优刻得CDN)

五、总结

以上是Github速度慢的原因和解决方案,个人认为从网络瓶颈、资源可用性限制、本地环境问题三方面来看,Github速度慢原因多方面,局限性大。解决方法也需结合自己的具体情况进行策略调整。