Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Github 通过HTTPS或SSH克隆时的带宽差异_Github - Fatal编程技术网

Github 通过HTTPS或SSH克隆时的带宽差异

Github 通过HTTPS或SSH克隆时的带宽差异,github,Github,根据经验,我注意到通过HTTPS(~500kb/s)和SSH(>10mb/s)克隆Github存储库之间的带宽差异很大 在一个发布周期中,我经常执行几个git clones,默认情况下,它们被配置为使用HTTPS(如,git clone)https://...),因为它不需要身份验证,而且对用户来说更简单 但是,存储库包含大约100 MB(由于有几个版本、一些二进制文件等),因此由于带宽限制,此命令需要几分钟的时间。如果我将git clone命令更改为使用git://...,下载速度超过10 M

根据经验,我注意到通过HTTPS(~500kb/s)和SSH(>10mb/s)克隆Github存储库之间的带宽差异很大

在一个发布周期中,我经常执行几个
git clone
s,默认情况下,它们被配置为使用HTTPS(如,
git clone)https://...
),因为它不需要身份验证,而且对用户来说更简单

但是,存储库包含大约100 MB(由于有几个版本、一些二进制文件等),因此由于带宽限制,此命令需要几分钟的时间。如果我将
git clone
命令更改为使用
git://...
,下载速度超过10 MB/s,因此所需时间不到10秒

理想情况下,存储库应该更小,但无论如何,我想告诉用户这一区别,让他们参考官方文档,但帮助页面根本没有提到,也没有提到。这个问题也没有提到带宽(我远远低于它们,所以这不太可能成为问题)


所以我想知道:这一行为是否为每个人所知并可复制?我是否会看到某些特定的带宽限制(可能是在短时间内完成了几次
git clone
s之后)?我希望有一个官方消息来源供用户参考。

我最终联系了Github支持部门,该部门回复:

我们没有在HTTPS和SSH之间设置带宽上限

因此,任何观察到的差异都必须是局部的

尽管如此,如果性能对用户来说真的很重要,那么告诉他们协议可能有不同的速度可能会很有用,他们应该同时尝试这两种协议,看看哪一种最适合他们

我是否会看到一些特定的带宽限制(可能是在短时间内完成了几个git克隆之后)

,尽管GitHub支持是正确的,因为它不是带宽限制。您将看到CPU节流。GitHub不受网络限制,但它受克隆存储库的CPU限制,因为计算要交付给您的packfile并压缩它以进行交付是非常昂贵的

正如Patrick Reynolds所讨论的,GitHub限制了特定用户从特定IP到特定存储库的并发Git操作的数量,以避免您拒绝文件服务器。这可以从你正在做的事情中看出,这就是避免“雷鸣般的羊群问题”

正如Patrick所指出的,“唯一达到这个极限的是脚本…”,而经常达到这些极限的是“为持续集成而克隆”。简而言之,GitHub分析了以前用于克隆该存储库的CPU时间,并假设将来的克隆将花费类似的时间。当您同时克隆其中的几个克隆时,GitHub将计算这些克隆总数的预期CPU时间。如果您超过了给定的配额,其中一些克隆将被延迟

这可确保多个克隆不会影响系统上的其他用户


那么,为什么使用HTTPS而不是SSH会产生这些影响呢?因为经过身份验证的用户的配额高于未经身份验证的用户。我怀疑如果您使用HTTPS进行身份验证,您会看到两个协议之间的响应时间相似。

也许这会有所帮助:澄清一下,实际上我没有克隆很多协议,只是每隔几分钟克隆一次,总共不到10次,所以我不确定是否应用了CPU节流。事实上,HTTPS似乎被限制为一个“舍入”数字(500KB/s),这让我想到了带宽上限。尽管如此,我还是尝试了克隆它(在上次尝试之后的几天),得到了223kb/s的HTTPS和119kb/s的SSH。所以我看不出有可重复的模式。总的来说,我们的存储库并不是那么有名,所以不需要特别考虑;我从您的问题推断,当您执行多个
clone
s时,您是同时执行的。所以我同意你可能没有触发节流。