一、網絡瓶頸
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速度慢原因多方面,局限性大。解決方法也需結合自己的具體情況進行策略調整。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/303668.html