remove - Git clona en Windows mucho más lento que en Linux
git remove tag (3)
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 conexión de 100/40 megabit / s. Puedo obtener 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 conexión a celular 4G y la velocidad es la misma.
Probé la prueba 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 conexión de red puenteada, obtengo ~ 8 mb / s de bitbucket utilizando SSH y HTTPS.
Si utilizo los servicios del equipo visual studio agente de construcción alojado (windows) obtengo aproximadamente 60mb / s (¿posiblemente en caché?)
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 predeterminado de 1500, sin embargo, al usar wireshark en Windows, puedo ver que todos los paquetes 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 red 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 de red lento (otras preguntas relacionadas con esto) traté de hacer un cp -r usando mi clon local y obtuve velocidades de transferencia de aproximadamente 1 gb / s (SSD RAID 0) usando los mismos caminos que en mi git config.
editar: si conecto la red 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
Probablemente estés experimentando el rendimiento no tan rápido al crear una gran cantidad de archivos pequeños en un sistema de archivos NTFS; esto no tiene nada que ver con tu conexión a internet.
Sin profundizar demasiado en los detalles técnicos, NTFS es extremadamente inefficient cuando se trabaja con miles de archivos pequeños (por lo general, lo que se ve en un repositorio GIT), probablemente pueda aumentar el rendimiento ajustando algunas opciones NTFS , de todos modos YMMV.
Quizás para confirmar que se trata de un problema de rendimiento del sistema de archivos, podría crear un disco RAM para clonar el repositorio.
Problema resuelto:
netsh interface tcp show global
netsh interface tcp set global autotuninglevel=normal
netsh interface tcp show heuristics
netsh interface tcp set heuristics disabled
La sintonización automática estaba 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 sesión, su PATH solo hará referencia 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 red 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 ventana en Windows 10 "
La función de autoajuste de la ventana de recepción permite que el sistema operativo supervise continuamente las condiciones de enrutamiento, como el ancho de banda, el retardo de la red y la demora de la aplicación. Por lo tanto, el sistema operativo puede configurar conexiones ampliando la ventana de recepción TCP para maximizar el rendimiento de la red.
Para determinar el tamaño óptimo de la ventana de recepción, la función de autoajuste de la ventana de recepción mide los productos que retrasan el ancho de banda y las tasas de recuperación de la aplicación. Luego, la función de autoajuste de la ventana de recepción adapta el tamaño de la ventana de recepción de la transmisión en curso para aprovechar cualquier ancho de banda no utilizado.
Permita que la configuración predeterminada de la característica de autoajuste de ventana esté habilitada. Si su red 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 característica y ver si funciona a su favor.
Como se explica en la publicación de blog de Microsoft :
Parte de la confusión puede tener su origen en una interpretación errónea de una publicación de blog que sugiere la desactivación de la heurística con el siguiente comando:
netsh interface tcp set heuristics disabled
La heurística es una función 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 .