Abrir un cartafol compartido pola VPN e agardar mentres a listaxe do directorio se arrastra é unha experiencia coñecida, e o primeiro instinto é culpar o ancho de banda. Normalmente a ligazón está case inactiva. O protocolo pasa o tempo agardando respostas, e cada espera custa unha ida e volta completa que a LAN nunca cobraba. Corrixa a forma do traballo e o recurso volve ser utilizábel.

A copia de traballo remota ten a forma equivocada

SMB abre ficheiros, le metadatos e confirma en moitos intercambios pequenos. Unha copia de traballo de control de versións nunha unidade montada dá por feita a latencia do sistema de ficheiros local e le moitos ficheiros pequenos. Unha base de datos de escritorio extrae páxinas mentres o usuario traballa. Cada unha desas cousas converte o atraso nun multiplicador, porque o custo medra con cantos intercambios realiza a operación; por iso un túnel de 40 ms converte uns centos de operacións en varios segundos. O tamaño da carga útil é case irrelevante nesa aritmética.

O custo do cifrado é unha parte pequena; a perda é peor, porque unha retransmisión máis unha xanela de conxestión colapsada custa moito máis que os bytes implicados.

Conte idas e voltas antes que megabytes

Mida o atraso antes de mercar capacidade. Un só ping dille o que paga cada intercambio.

ping -c 10 fileserver.example.net

O resumo dá os tempos de ida e volta mínimo, medio e máximo, e a dispersión importa tanto coma a media. Multiplique a media polo número de intercambios que realiza unha listaxe de directorio e compáreo co tempo que observa realmente. Se un ficheiro grande se transfire rápido mentres a navegación é lenta, a restrición son a latencia e o número de peticións. Engadir dez veces máis capacidade a unha ligazón que nunca se satura non cambia absolutamente nada.

Mova o traballo, non os bytes

Cambie onde ocorre o traballo en lugar de pagar por máis tubo. Sirva o repositorio en vez de montalo, e copie en bloque cunha ferramenta que só envía diferenzas.

rsync -av --info=progress2 ./project/ [email protected]:/srv/share/project/

Servir o repositorio, como fan hgweb ou un Git remoto, deixa o cliente traballar sobre un clon local, de xeito que as súas chamadas ao sistema de ficheiros nunca cruzan o túnel. rsync percorre os dous lados e envía os bloques cambiados, eliminando a maioría dos intercambios que paga unha copia inxenua. Unha base de datos de escritorio pertence a un motor no servidor co cliente reducido a unha interface, ou todo o cliente se executa nun host interno. Cada opción cambia a canta latencia se expón o protocolo, e diso se trata.

Os bloqueos á mesma altura son síntoma de MTU

As transferencias grandes que se atascan tras aproximadamente a mesma cantidade de datos, mentres o ping e as páxinas pequenas funcionan, apuntan ao tamaño do paquete e non ao ancho de banda.

ping -M do -s 1400 -c 3 fileserver.example.net

Unha proba correcta significa que un paquete IP de 1428 bytes cruza o camiño sen fragmentarse, xa que as cabeceiras ICMP e IP engaden 28 bytes. Un fallo coa marca de non fragmentar suxire que a MTU utilizábel do túnel é menor do que supón o servidor. Un servidor que envía buffers de 9000 bytes a un camiño de 1500 bytes forza a fragmentación ou descartes, e o descubrimento da MTU do camiño pode fallar en silencio cando se filtra ICMP. Baixe a MTU do túnel, active mssfix en OpenVPN ou reduza os buffers do servidor, e despois repita a mesma transferencia para confirmar.

Mida a fenda que importa

Executa a mesma operación de tres xeitos onde a política o permita: en local, polo túnel e por unha ruta directa de internet. Para cada unha, anote o tempo de ida e volta, a taxa dun fluxo grande e canto tarda unha listaxe de directorio ou a apertura dunha aplicación. Comparar a execución local coa do túnel mostra que custo domina. Unha copia que remata amodo suxire un problema de taxa ou de atraso, mentres que unha copia que morre nun punto constante suxire o tamaño do paquete ou un dispositivo con estado no camiño.

Cando só se arrastran os primeiros megabytes, mire a autenticación e os metadatos; cando todo se arrastra, mire a capacidade e as perdas. Corrixa a causa correspondente e deixe de agardar que unha ligazón WAN se comporte como un cable de LAN.

Artigos relacionados