Git clona en Windows mucho más lento que en Linux

He estado persiguiendo un problema con velocidades de clonación extremadamente lentas de github en Windows. Linux (kali) no tiene este problema.

Estoy conectado a una connection de 100/40 megabit / s. Puedo get casi 8mb / s de descarga sin problema.

He conectado mi PC directamente a nuestra tienda de Internet sin ningún enrutador o conmutador.

Windows git clone (Windows 10, git 2.14.1) descarga consistentemente a aproximadamente 150-210kb / s

He intentado con otra máquina con Windows 7 y Windows 10 con el mismo problema. He probado una máquina virtual de Windows XP con el mismo problema. He cambiado mi connection a celular 4G y la velocidad es la misma.

Probé la testing espejo de github ( https://bitbucket.org/mirror/git.git ) con los mismos resultados.

He probado SSH y HTTPS con un cambio en la velocidad pero aún lento.

He probado otros espejos github también a baja velocidad.

He intentado usar una VPN (PIA) a través de Silicon Valley, que fue aún más lento.

Si uso kali linux en una máquina virtual en la misma máquina con la connection de networking puenteada, obtengo ~ 8 mb / s de bitbucket usando SSH y HTTPS.

Si utilizo los services del equipo visual studio agente de construcción alojado (windows) obtengo aproximadamente 60mb / s (¿posiblemente en caching?)

He intentado ejecutar git desde git bash, ubuntu bash (windows 10), windows cmd, powershell, todo con las mismas lentas velocidades.

He intentado utilizar la "Biblioteca de OpenSSL" y también la "biblioteca de canales seguros nativos de Windows" al instalar git.

He intentado degradar tan bajo como la versión 2.00 de 2.14 sin diferencia.

Estoy ubicado en Australia.

He hablado con el soporte de bitbucket y han sugerido que el MSS / MTU debe ser 1436 o menor. Mi enrutador y mi PC tienen el valor pnetworkingeterminado de 1500, sin embargo, al utilizar wireshark en Windows, puedo ver que todos los packages tienen una MTU de 1436.

Usando tcpdump en kali linux también veo una MTU de 1436.

Para resumir, he cambiado las siguientes cosas: Diferentes PC / VM Diferentes versiones de Windows Diferentes conexiones de networking físicas.

Obtengo ~ 200kb / s como máximo en Windows o obtengo 8mb / s como máximo en Linux.

¿Qué es específicamente diferente entre las implementaciones de Linux y Windows Git que pueden causar estas diferencias de velocidad?

editar: en caso de que git utilizara un uso compartido lento de la networking (se vieron otras preguntas al respecto) traté de hacer un cp -r usando mi clon local y obtuve velocidades de transferencia de aproximadamente 1 gb / s (RAID 0 SSD) usando los mismos paths que en mi git config.

editar: si conecto la networking en mi Kali VM a windows obtengo 8mb / s, si uso NAT obtendré 200kb / s, lo que indica que tiene algo que ver con el https a través de Windows en lugar de con el cliente de git que causa el problema. ¿Esto ayuda?

edición 2: parece que todo el tráfico HTTPS a través de Windows tiene un límite de 200 kb / s, este es un problema de Windows, no un problema de git. Comenzaré una nueva pregunta.

https://superuser.com/questions/1244551/https-traffic-40x-slower-than-http-in-windows-10-x64

problema resuelto.

netsh interface tcp muestra global

netsh int tcp set global autotuninglevel = normal

la sintonización automática fue desactivada por alguna razón en todas mis PC con Windows 10

La velocidad fue instantáneamente a 8mb / s

Pruebe y descomprima PortableGit-2.14.1-64-bit.7z.exe en (por ejemplo) C: \ git2.14.1

Luego, en un CMD (no bash), escriba:

set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\ set GH=C:\git2.14.1 set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH% 

En esa session, su PATH solo hará reference a Windows y Git.

Intente de nuevo un clon de Git, para ver si la velocidad todavía está tapada.

Si lo hace, como comenta el OP, entonces la networking de Windows tiene la culpa .
Eso es lo que el OP descubrió en su otra pregunta .
Y eso es lo que se explica en " autoajuste de window en Windows 10 "

La function de autoajuste de la window de recepción permite que el sistema operativo supervise continuamente las condiciones de routing, como el ancho de banda, el retardo de la networking y la demora de la aplicación. Por lo tanto, el sistema operativo puede configurar conexiones ampliando la window de recepción TCP para maximizar el performance de la networking.

Para determinar el tamaño óptimo de la window de recepción, la function de autoajuste de la window de recepción mide los productos que retrasan el ancho de banda y las tasas de recuperación de la aplicación. Luego, la function de autoajuste de la window de recepción adapta el tamaño de la window de recepción de la transmisión en curso para aprovechar cualquier ancho de banda no utilizado.

Permita que la configuration pnetworkingeterminada de la característica de autoajuste de window esté habilitada. Si su networking utiliza un enrutador viejo o su software de firewall no admite esta característica, y tiene problemas de conectividad o no tiene conectividad, solo entonces puede desactivar esta function y ver si funciona a su favor.

Como se explica en la publicación de blog de Microsoft :

Parte de la confusión puede deberse a una interpretación errónea de una publicación de blog que sugiere la desactivación de la heurística con el siguiente command:

 netsh interface tcp set heuristics disabled 

La heurística es una function que puede interferir con el autoajuste y deshabilitarla puede mejorar las velocidades de Internet y, de hecho, la heurística ya se ha desactivado en Windows 8.1 y posteriores.
El autoajuste, por otro lado, NUNCA debe estar desactivado .

Probablemente estés experimentando el performance no tan rápido al crear una gran cantidad de files pequeños en un sistema de files NTFS; esto no tiene nada que ver con tu connection a internet.

Sin profundizar demasiado en los detalles técnicos, NTFS es extremadamente ineficiente cuando se trabaja con miles de files pequeños (por lo general, lo que se ve en un repository GIT), probablemente pueda boost el performance ajustando algunas opciones NTFS , de todos modos YMMV.

Quizás para confirmar que se trata de un problema de performance del sistema de files, podría crear un disco RAM para clonar el repository.